assystem 1.0.0

A simple key-value database stored in one file
Documentation
  • Coverage
  • 15.38%
    2 out of 13 items documented0 out of 10 items with examples
  • Size
  • Source code size: 20.92 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.67 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • megahomyak

ASSystem is A Storage System that's total ASS. It's a simple key-value storage, as simple as I could make it, stored in a single file. No running daemons, complex APIs or outer dependencies, just plain and simple (and rather dumb) get, insert, remove and list.

This doc MAY go out of sync with the codebase. I didn't set up any system for sync because ain't no way I'm fucking with Rust. Please, keep in mind that the only reliable source for how the source code works is the source code itself

=== LIMITATIONS ===

This allocator, unfortunately, assumes these things:

  • The database size will never be bigger than 2**64 bytes (which is around 16384 pebibytes) - if it will be, this thing will go into Undefined Behavior. Not by design, it's only an implementation flaw
  • There will be no I/O errors when interacting with the database - if there will be, this thing will crash, leaving the database in a corrupted state

This software is very down-to-earth in general and barely makes any accomodations for unusual situations, so please, use it as a hammer, not as a bulldozer. If you want, you can read the source code and freely extend the software (and you also may ask the dev for help in understanding the software)

=== USAGE ===

Use assystem::ASS::open with a readable + writable + seekable buffer, then use .get, .insert, .remove or .list on the resulting object