1 stable release
1.0.0 | Jan 25, 2025 |
---|
#1610 in Database interfaces
192 downloads per month
21KB
491 lines
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