[−][src]Crate zbox
ZboxFS is a zero-details, privacy-focused in-app file system.
It keeps your app files securely, privately and reliably on underlying storages. By encapsulating files and directories into an encrypted repository, it provides a virtual file system and exclusive access to the authorised application.
The most core parts of this module are Repo and File, which provides
most API for file system operations and file data I/O.
Repoprovides similar file system manipulation methods tostd::fsFileprovides similar file I/O methods tostd::fs::File
init_env initialises the environment and should be called once before
any other methods provided by ZboxFS.
After repository is opened by RepoOpener, all of the other functions
provided by ZboxFS will be thread-safe.
Examples
Create and open a Repo using memory as underlying storage.
use zbox::{init_env, RepoOpener}; // initialise zbox environment, called first init_env(); // create and open a repository let mut repo = RepoOpener::new() .create(true) .open("mem://my_repo", "your password") .unwrap();
File content IO using Read and Write traits.
use std::io::prelude::*; use std::io::{Seek, SeekFrom}; use zbox::OpenOptions; // create and open a file for writing let mut file = OpenOptions::new() .create(true) .open(&mut repo, "/my_file.txt") .unwrap(); // use std::io::Write trait to write data into it file.write_all(b"Hello, world!").unwrap(); // finish writting to make a permanent content version file.finish().unwrap(); // read file content using std::io::Read trait let mut content = String::new(); file.seek(SeekFrom::Start(0)).unwrap(); file.read_to_string(&mut content).unwrap(); assert_eq!(content, "Hello, world!");
Directory navigation can use Path and PathBuf. The path separator
should always be "/", even on Windows.
use std::path::Path; let path = Path::new("/foo/bar"); repo.create_dir_all(&path).unwrap(); assert!(repo.is_dir(path.parent().unwrap()).is_ok());
Structs
| DirEntry | Entries returned by the |
| Eid | Unique entity ID. |
| File | A reference to an opened file in the repository. |
| Metadata | Metadata information about a file or a directory. |
| OpenOptions | Options and flags which can be used to configure how a file is opened. |
| Repo | An encrypted repository contains the whole file system. |
| RepoInfo | Information about a repository. |
| RepoOpener | A builder used to create a repository |
| Version | A representation of a permanent file content. |
| VersionReader | A reader for a specific vesion of file content. |
Enums
| Cipher | Crypto cipher primitives. |
| Error | |
| FileType | A structure representing a type of file with accessors for each file type. |
| MemLimit | Password hash memory limit. |
| OpsLimit | Password hash operation limit. |
Functions
| init_env | Initialise ZboxFS environment. |
| zbox_version | Get ZboxFS library version string. |
Type Definitions
| Result | A specialized |