2 releases

0.40.0 Jan 13, 2023

#2138 in Database interfaces

35 downloads per month
Used in wildland-cargo-lib

GPL-3.0-only

140KB
2.5K SLoC

Wildland Catlib

This crate provides Wildland Catalog client which allows to persistently store Wildland entities such as Containers, Storages, Forests in an arbitrary database.

Current implementation stores all entities in an inefficient, single-file, schemaless "database".

Location of the database file depends on the platform where the application runs, these are:

  • Linux: /home/alice/.config/catlib
  • Windows: C:\Users\Alice\AppData\Roaming\com.wildland.Cargo\catlib
  • macOS: /Users/Alice/Library/Application Support/com.wildland.Cargo/catlib

Example usages

Creating container with paths

let catlib = CatLib::default();
let forest = catlib.create_forest(b"owner".to_vec(), Signers::new(), vec![]).unwrap();
let container = forest.create_container("container name".to_owned()).unwrap();
container.add_path("/foo/bar".to_string());

Finding container(s) by paths

let catlib = CatLib::default();
let containers = catlib.find_containers(vec!["/foo/bar".into()], false).unwrap();

Dependencies

~16–29MB
~465K SLoC