#injectable #networking #resources #fs #testable #version

kxio

Provides injectable Filesystem and Network resources to make code more testable

8 releases (5 stable)

1.2.0 May 17, 2024
1.1.2 Apr 30, 2024
0.1.2 Apr 10, 2024

#546 in Filesystem

Download history 68/week @ 2024-06-10 22/week @ 2024-06-17 83/week @ 2024-06-24 73/week @ 2024-07-01 100/week @ 2024-07-08 68/week @ 2024-07-15 87/week @ 2024-07-22 239/week @ 2024-07-29 78/week @ 2024-08-05 5/week @ 2024-08-12 59/week @ 2024-08-19 211/week @ 2024-08-26 80/week @ 2024-09-02 121/week @ 2024-09-09 145/week @ 2024-09-16 75/week @ 2024-09-23

472 downloads per month
Used in 4 crates

MIT license

110KB
3K SLoC

kxio

status-badge

Provides injectable Filesystem and Network resources to make code more testable.

FileSystem

There are two FileSystem implementation: [filesystem] and [fs].

  • [filesystem] is the legacy implementation and will be removed in a future version.
  • [fs] is the current version and is intended to stand-in for and extend the std::fs module from the Standard Library.

std::fs alternatives

To Do std::fs kxio::fs::FileSystem
[ ] canonicalize path_canonicalize Returns the canonical, absolute form of a path with all intermediate components normalized and symbolic links resolved.
[ ] copy file_copy Copies the contents of one file to another. This function will also copy the permission bits of the original file to the destination file.
[ ] create_dir dir_create Creates a new, empty directory at the provided path
[ ] create_dir_all dir_create_all Recursively create a directory and all of its parent components if they are missing.
[ ] hard_link link_create Creates a new hard link on the filesystem.
[ ] metadata path_metadata Given a path, query the file system to get information about a file, directory, etc.
[ ] read file_read Read the entire contents of a file into a bytes vector.
[ ] read_dir dir_read Returns an iterator over the entries within a directory.
[ ] read_link link_read Reads a symbolic link, returning the file that the link points to.
[x] read_to_string file_read_to_string Read the entire contents of a file into a string.
[ ] remove_dir dir_remove Removes an empty directory.
[ ] remove_dir_all dir_remove_all Removes a directory at this path, after removing all its contents. Use carefully!
[ ] remove_file file_remove Removes a file from the filesystem.
[ ] rename path_rename Rename a file or directory to a new name, replacing the original file if to already exists.
[ ] set_permissions path_set_permissions Changes the permissions found on a file or a directory.
[ ] symlink_metadata link_metadata Query the metadata about a file without following symlinks.
[x] write file_write Write a slice as the entire contents of a file.

Network

The entire [network] module needs to be completly rewritten It's use is strongly discouraged. A new [net] module will likely be its replacement.

Dependencies

~6–19MB
~288K SLoC