Struct zbox::Repo[][src]

pub struct Repo { /* fields omitted */ }

An encrypted repository contains the whole file system.

A Repo represents a secure collection which consists of files, directories and their associated data. Similar to std::fs, Repo provides methods to manipulate the enclosed file system.

Create and open Repo

Repo can be created on different storages using RepoOpener. It uses an URI-like string to specify its location. Supported storages are listed below:

  • OS file system based storage, location prefix: file://
  • Memory based storage, location prefix: mem://
  • SQLite based storage, location prefix: sqlite://
  • Redis based storage, location prefix: redis://

Check details at: RepoOpener

Repo can only be opened once at a time. After opened, it keeps locked from other open attempts until it goes out scope.

Optionally, Repo can also be opened in read-only mode.

Examples

Create an OS file system based repository.

use zbox::{init_env, RepoOpener};

init_env();
let mut repo = RepoOpener::new()
    .create(true)
    .open("file:///path/to/repo", "pwd")?;

Create a memory based repository.

let mut repo = RepoOpener::new().create(true).open("mem://foo", "pwd")?;

Open a repository in read-only mode.

let mut repo = RepoOpener::new()
    .read_only(true)
    .open("file:///path/to/repo", "pwd")?;

Methods

impl Repo
[src]

Returns whether the URI points at an existing repository.

Existence check depends on the underlying storage implementation, for memory storage, it always returns false. For file storage, it will return if the specified path exists on the OS file system.

Get repository metadata infomation.

Reset password for the respository.

Returns whether the path points at an existing entity in repository.

path must be an absolute path.

Returns whether the path exists in repository and is pointing at a regular file.

path must be an absolute path.

Returns whether the path exists in repository and is pointing at a directory.

path must be an absolute path.

Create a file in read-write mode.

This function will create a file if it does not exist, and will truncate it if it does.

See the OpenOptions::open function for more details.

Attempts to open a file in read-only mode.

path must be an absolute path.

See the OpenOptions::open function for more details.

Errors

This function will return an error if path does not already exist. Other errors may also be returned according to OpenOptions::open.

Examples

let mut f = repo.open_file("foo.txt")?;

Creates a new, empty directory at the specified path.

path must be an absolute path.

Recursively create a directory and all of its parent components if they are missing.

path must be an absolute path.

Returns a vector of all the entries within a directory.

path must be an absolute path.

Given a path, query the repository to get information about a file, directory, etc.

path must be an absolute path.

Return a vector of history versions of a regular file.

path must be an absolute path to a regular file.

Copies the content of one file to another.

This function will overwrite the content of to.

If from and to both point to the same file, then this function will do nothing.

from and to must be absolute paths to regular files.

Removes a regular file from the repository.

path must be an absolute path.

Remove an existing empty directory.

path must be an absolute path.

Removes a directory at this path, after removing all its children. Use carefully!

path must be an absolute path.

Rename a file or directory to a new name, replacing the original file if to already exists.

from and to must be absolute paths.

Trait Implementations

impl Debug for Repo
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for Repo

impl Sync for Repo