https://github.com/tilpner/betree
https://github.com/tilpner/betree
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tilpner/betree
- Owner: tilpner
- License: apache-2.0
- Created: 2021-02-16T16:39:01.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-09-30T15:42:00.000Z (over 4 years ago)
- Last Synced: 2025-10-09T10:29:42.523Z (8 months ago)
- Language: Rust
- Size: 1.11 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Be-Tree Storage Stack
A storage library offering key-value and object interfaces by managing B^ε-trees on block storage devices.
## Dependencies
You'll need at least Rust 1.53.0 (for saturating Duration operations).
```
git clone https://github.com/tilpner/betree
cd betree/betree
cargo build
cd tests
cargo test
```
### julea-sys
`julea-sys` generates limited Rust bindings from the JULEA headers, by using rust-bindgen, which uses libclang.
The location of the JULEA headers must be provided by passing the `JULEA_INCLUDE` environment variable.
bindgen needs to access included headers of any libraries JULEA is referencing. The search path can be provided as shown below,
though the specifics may change depending on future JULEA versions and cross-compilation.
See the [bindgen documentation](https://github.com/rust-lang/rust-bindgen#environment-variables) for options
of providing the necessary include paths.
```
export BINDGEN_EXTRA_CLANG_ARGS="$(pkg-config --cflags glib-2.0) $(pkg-config --cflags libbson-1.0)"
```
## Attribution
This code was originally written as a part of Felix Wiedemanns ([@Nilix007](https://github.com/Nilix007)) [master's thesis](https://wr.informatik.uni-hamburg.de/_media/research:theses:felix_wiedemann_modern_storage_stack_with_key_value_store_interface_and_snapshots_based_on_copy_on_write_b%CE%B5_trees.pdf).
## License
Licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.