Skip to content

An implementation of the Storage API in Rust

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

CraftSpider/department

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Department

crates.io Documentation MIT/Apache-2 licensed

A Rust library hosting a possible implementation of the proposed Storages API, as well as several of the standard std collections implemented with it.

Inspired by storage-poc, re-implemented and built upon to provide (hopefully) release-ready functionality.

Features

By default, all features are turned on - but they can be disabled if you only want specific storages and collections

  • std: Whether to include std error support and other std-only features
  • all_storages: Enable all storage features
    • inline: Inline on-the-stack storages
    • heap: Virtual heap-like storage, can be used on the stack or in a static
    • static: Storages backed by static memory, stored in the binary
    • alloc: Storages backed by a standard allocator. Requires the alloc crate to be available
    • fallback: Storage which attempts to store something in one, then falls back to a second storage
    • debug: Storage which wraps another, and provides a number of runtime checks which panic on certain forms of UB or incorrect usages.
  • all_collections: Enable all collection types
    • box: Include the Box type
    • rc: Include the Rc and Weak types
    • vec: Include the Vec type
    • string: Include the String type, requires vec

Future Work

In the future, more types of storages and collections need to be added, hopefully up to std parity. Tests should be added for all storage types, with coverage for most edge cases (ZST, alignment requirements, etc).

Missing Collections

  • btree, an implementation of a BTreeMap and BTreeSet
  • hash, an implementation of a HashMap and HashSet
  • arc, implementation for atomically ref-counted items
  • os/path, implementations of OsString and PathBuf

About

An implementation of the Storage API in Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages