This is a partial reimplementation of the BossDB REST API in Rust.
bossphorus simplifies data-access patterns for data that do not fit into RAM. When you write a 100-gigabyte file, bossphorus automatically slices your dataset up to fit in bite-sized pieces.
When you request small pieces of your data for analysis, bossphorus intelligently serves only the parts you need, leaving the rest on disk.
See Feature Parity for more information.
Bossphorus caches cuboids in the uploads folder that's created in the current
working directory. Currently, it will cache up to 1000 cuboids in this folder.
The least recently used cuboids are removed when the cuboid limit is reached.
Environment variables have precedence over the Rocket.toml config file.
BOSSHOST: Sets the Boss DB host
BOSSTOKEN: Token used for Boss auth
bosshost: Sets the Boss DB host
bosstoken: Token used for Boss auth
In absence of an environment variable and value in the Rocket.toml file:
bosshost = "api.bossdb.io"
bosstoken = "public"
Blosc must be installed manually via a package manager to build. SQLite is required, but it included with MacOS by default.
For MacOS:
brew install c-bloscFor Debian based Linux distros:
sudo apt-get install libblosc-dev sqlite3For RPM based Linux distros:
sudo yum install blosc sqliteDue to use of the Rocket web server crate, the nightly Rust toolchain must be used. You can set this as your project default with:
rustup override set nightlyYou can build an optimized release with:
cargo build --releaseThe binary will be at target/release/bossphorus.
