Overview
Standard library
The standard library uses Reboot's capabilities to build powerful data structures and APIs for common tasks.
The current libraries are:
- Ciphertext - Envelope encryption with a revocable wrapping key: encrypt values at rest and crypto-shred them by destroying a single key.
- OAuth Token Manager - An encrypted, per-service store for your users' OAuth tokens, so your application can call external services on their behalf.
- PubSub - A pub/sub implementation that enables you to subscribe and broadcast to topics.
- Queue - A durable queue implementation that allows you to enqueue and dequeue items.
- OrderedMap - A newer implementation of a collection / dictionary / map that may be larger than memory. We recommend using this.
- SortedMap - An older implementation of a collection / dictionary / map that may be larger than memory, and which is efficiently mapped to Reboot's underlying storage.
Integrations
Reboot's integrations add clean, surefire APIs to interact with third party services. Because interactions with external services are isolated as side-effects, you can confidently use an integration's API -- knowing that it will safely compose, and without worrying about whether it might partially fail or retry unsafely.
The currently supported integrations are:
- Mailgun - Integration that supports sending email messages using the Mailgun API.
Usage
To use a library service, you must include each library service your code
uses when starting your Application. For example:
- Python
- TypeScript
from reboot.std.collections.v1.sorted_map import sorted_map_library
async def main():
application = Application(
servicers=[ChatRoomServicer],
libraries=[sorted_map_library()],
)
await application.run()
import sortedMap, {
SortedMap,
} from "@reboot-dev/reboot-std/collections/v1/sorted_map.js";
new Application({
servicers: [ChatRoomServicer, ...sortedMap.servicers()],
initialize,
}).run();
Future libraries and integrations
Reach out to us if there are any integrations or standard library features you want us to prioritize. Or we can help you build them, if that's more your speed!