https://github.com/aplbrain/bossphorus
A BossDB-like volumetric datastore in Rust
https://github.com/aplbrain/bossphorus
3d bossdb rust volumetric-data
Last synced: 3 months ago
JSON representation
A BossDB-like volumetric datastore in Rust
- Host: GitHub
- URL: https://github.com/aplbrain/bossphorus
- Owner: aplbrain
- License: apache-2.0
- Created: 2020-03-30T16:02:07.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-14T16:25:44.000Z (almost 2 years ago)
- Last Synced: 2025-01-22T00:16:20.842Z (5 months ago)
- Topics: 3d, bossdb, rust, volumetric-data
- Language: Rust
- Homepage:
- Size: 259 KB
- Stars: 1
- Watchers: 17
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Bossphorus implementation in Rust
This is a partial reimplementation of the BossDB REST API in [Rust](https://www.rust-lang.org/).
## Why?
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.
## Feature Parity
See [Feature Parity](docs/Features.md) for more information.
## Disk Usage
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.## Configuration
Environment variables have precedence over the `Rocket.toml` config file.
### Environment Variables
`BOSSHOST`: Sets the Boss DB host
`BOSSTOKEN`: Token used for Boss auth### Rocket.toml File
`bosshost`: Sets the Boss DB host
`bosstoken`: Token used for Boss auth### Defaults
In absence of an environment variable and value in the `Rocket.toml` file:
```
bosshost = "api.bossdb.io"
bosstoken = "public"
```## Development
Blosc must be installed manually via a package manager to build. SQLite is
required, but it included with MacOS by default.For MacOS:
```shell
brew install c-blosc
```For Debian based Linux distros:
```shell
sudo apt-get install libblosc-dev sqlite3
```For RPM based Linux distros:
```shell
sudo yum install blosc sqlite
```Due to use of the Rocket web server crate, the nightly Rust toolchain must be used. You can set this as your project default with:
```shell
rustup override set nightly
```## Releases
You can build an optimized release with:
```shell
cargo build --release
```The binary will be at `target/release/bossphorus`.
## License
[](https://app.fossa.com/projects/git%2Bgithub.com%2Faplbrain%2Fbossphorus?ref=badge_large)