nebari
min-sized-rust
nebari | min-sized-rust | |
---|---|---|
11 | 101 | |
260 | 7,485 | |
2.3% | - | |
4.6 | 6.2 | |
7 months ago | 2 months ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nebari
-
Some key-value storage engines in Rust
Or, you could also look at Nebari, which underlies BonsaiDB https://github.com/khonsulabs/nebari/
-
Are there a demand for management system of embedded storage like RocksDB? I plan to build one in Rust as the language becoming a core of many popular databases but wonder if there’s a demand. Can’t find any similar project even in other languages.
There is Nebari which is the KV part of BonsaiDB I've used both successfully (and that is currently in production)
-
redb 0.4.0: 2x faster commits with 1PC+C instead of 2PC
This looks like it could have been inspired by BonsaiDB's recent problems. I think the authors are now trying to achieve something similar to your project with a new storage layer called Sediment (which will become a part of Nebari if successful).
-
File read performance comparison
I ran my benchmark suite on my 2017 i7 MacBook Pro (Filevault enabled), and I was able to perform a random "get" operation out of a 1 million record dataset in an average of 18us (microseconds).
-
Announcing BonsaiDb v0.2.0: Custom Primary Keys, LZ4 Compression
I haven't spent much time documenting the low-level structures outside of the code itself.
-
Announcing BonsaiDb v0.1.0: A Rust NoSQL database that grows with you
Nebari, the underlying storage layer, also has its own coverage report.
-
Benchmarking relational data in BonsaiDb, a Rust-native NoSQL database
Quite well, but Sled doesn't support the same feature set. I've benchmarked our low-level storage layer against Sled in its own repostiory: Nebari Benchmark README. There are two links two criterion reports on that page.
-
Are there any big projects written in Rust without any use of unsafe code?
I maintain several large codebases that have #![forbid(unsafe)] annotations, which prevent unsafe code from being written in those codebases directly. BonsaiDb clocks in at just shy of 30k LOC, and depends on Nebari which is another 12k LOC. Those two crates make up the bulk of a networked database implementation.
-
What is the best key-value store for Rust 2021
I have, and there's a set of microbenchmarks in the repository. There are two links to reports on that page -- one that's executed on GitHub Actions, which can have quite widely varying performance, and one that's executed on a "dedicated" VPS instance from Scaleway -- exact specs are on that page. I've kicked off another run on that VPS, since it hasn't been run since October. It takes a while to run, so if it still says October, try hitting refresh a little later.
-
What's everyone working on this week (40/2021)?
I replaced Sled in BonsaiDb with a new storage layer I wrote: Nebari. I just wrote a post this morning recalling my struggles over the last month to feel comfortable sharing this project outside of a smaller group of people.
min-sized-rust
-
The Linux Kernel Prepares for Rust 1.77 Upgrade
This is a good guide on building small Rust binaries: https://github.com/johnthagen/min-sized-rust
This talks about going to extreme lengths on making the smallest Rust binary possible, 400 bytes when it was written, https://darkcoding.net/software/a-very-small-rust-binary-ind...
The thing is, you lose a lot of nice features when you do this, like panic unwinding, debug symbols, stdlib… for kernel and some embedded development it’s definitely important, but for most use cases, does it matter?
-
Rust wont save us, but its ideas will
Oh it was 137, haha. I will link you to this older comment of mine: https://news.ycombinator.com/item?id=29408906
See also https://github.com/johnthagen/min-sized-rust
-
Making Rust binaries smaller by default
Are you sure? If so then this is awesome news, but I'm a bit confused; the commit in that min-sized-rust repo adding `build-std` to the README was merged in August 2021: https://github.com/johnthagen/min-sized-rust/pull/30
Are you saying that at that point the feature still hadn't "landed in Rust nightly" until recently? If so then what's the difference between a feature just being available in Rust nightly, vs having "landed"?
-
Was Rust Worth It?
Rust binaries are by default nowhere close to 500MB. If they are not small enough for you, you can try https://github.com/johnthagen/min-sized-rust. By avoiding the formatting machinery and using `panic_immediate_abort` you can get about the size of C binaries.
-
Compiling Rust binaries for Windows 98 SE and more: a journey
A useful reference: https://github.com/johnthagen/min-sized-rust
- How to minimize Rust binary size
- Error on flashing embedded code to stm32f103
-
Tiny Binaries (2021)
That must be without stripping. Also there are ways to reduce binary size. See e.g. [min-sized-rust](https://github.com/johnthagen/min-sized-rust). I've gotten stripped binaries of small cli utils less than 400KiB without doing anything special, less than 150 KiB by customizing profile settings and compressing with upx, and less than 30 KiB by replacing the std with the libc as the link shows. Haven't tried with fltk though...
-
Shared libraries
This is not quite what you're asking, but it does also address the underlying concern: https://github.com/johnthagen/min-sized-rust
What are some alternatives?
glow - GL on Whatever: a set of bindings to run GL anywhere and avoid target-specific code
smartstring - Compact inlined strings for Rust.
forbidden - An auth system/library for Rust applications
Cargo - The Rust package manager
sled - the champagne of beta embedded databases
rustc_codegen_gcc - libgccjit AOT codegen for rustc
redb - An embedded key-value database in pure Rust
c2rust - Migrate C code to Rust
PickleDB - PickleDB-rs is a lightweight and simple key-value store. It is a Rust version for Python's PickleDB
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
bonsaidb - A developer-friendly document database that grows with you, written in Rust
embedded-graphics - A no_std graphics library for embedded applications