Urbit's web3 and composability bridge
- Enables app composability: With Urbit, your users' data is theirs, forever. Applications using TomeDB can directly read and write from other data stores, with the simplicity of saving files to disk.
- Fully integrated and modular permissions: Developers can specify exactly which users or groups have read / write / overwrite access for each data store.
- Bootstraps Automatically: Applications using TomeDB will create and set access to data stores on launch - no user or developer configuration required.
Here’s a simple example of setting and retrieving a value with Tome and an Urbit connection:
import Urbit from '@urbit/http-api'
import Tome from '@holium/tome-db'
const api = new Urbit('', '', window.desk)
api.ship = window.ship
const db = await Tome.init(api)
const store = await db.keyvalue()
const result = await store.set('foo', 'bar')
// result === true
const value = await store.get('foo')
// value === 'bar'
- TomeDB currently cannot support large datasets or concurrent user counts. All data is stored and delivered by the host ship, whose max capacity is ~2-8 GB. Future plans include support for load balancing and data distribution.
- Data stores are somewhat static (key-value, log, or feed). TomeDB is not a full graph or relational database replacement. It can still be useful for rapid prototyping, however.