Skip to content

Releases: SeriousBug/cuttlestore

0.2.1

25 Feb 07:10
84f8b16
Compare
Choose a tag to compare

This minor release adds a flag backend-sqlite-rustls. This backend can be enabled in place of backend-sqlite to use Rustls instead of Native TLS.

0.2.0

27 Jan 04:27
37dbe0f
Compare
Choose a tag to compare

Cuttlestore 0.2.0 is out!

The main new feature with this release is the addition of multiple store support. You can use multiple stores by creating a connection, then using that connection to make multiple stores that all share the underlying database connection. You can see an example of this here:

   let connection = CuttlestoreBuilder::new("filesystem://./example-store/using-builder")
       // Every 3 seconds, the store will be swept for stale values.
       .clean_every_secs(3)
       // Make into a connection so we can make multiple stores
       .finish_connection()
       .await
       .unwrap();

   let player_store: Cuttlestore<Player> = connection.make("player").await.unwrap();
   let item_store: Cuttlestore<Item> = connection.make("item").await.unwrap();

https://github.com/SeriousBug/cuttlestore/blob/main/examples/multiple-stores.rs

This release also comes with support for prefixes. Prefixes are transparent prefixes that are added to your keys when storing them in the datastore. This can be useful to avoid collisions: for example if multiple applications have to share the same datastore, giving them unique prefixes would allow you to avoid them seeing each others keys in the store.

Finally, the filesystem backend has been disabled by default. After fixing a minor bug, I found that the performance for sequential puts is incredibly low. The durability of the filesystem backend is also questionable (files are fsync'ed out, but the directory entries were not, which would have lowered the performance even futher). It is still available to be enabled, but is not recommended.

0.1.0

19 Jan 05:50
2ce47bd
Compare
Choose a tag to compare

The first release!