A Rust library that provides type-safe, ergonomic abstractions for working with AWS DynamoDB.
Dynomite is a Rust library that provides type-safe, ergonomic abstractions for working with AWS DynamoDB. It allows developers to map Rust structs directly to DynamoDB items using derive macros, reducing boilerplate and preventing common errors like typos or incorrect data types. The library builds on Rusoto and supports features like automatic async pagination and client-level retry handling.
Rust developers building applications on AWS DynamoDB who want type safety, reduced boilerplate, and robust error handling.
Developers choose Dynomite for its seamless integration with Rust's type system, which catches errors at compile time, and its productivity-focused features like automatic pagination and retry logic, all while maintaining compatibility with stable Rust.
⚡🦀 🧨 make your rust types fit DynamoDB and visa versa
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Rust's derive macros (e.g., #[derive(Item)]) to automatically serialize structs to DynamoDB items, catching typos and data type mismatches at compile time, as demonstrated in the README's code comparison.
Handles DynamoDB query and scan pagination asynchronously out of the box, eliminating manual iteration code for large datasets.
Provides client-level retry interfaces aligned with AWS error-handling best practices, improving resilience in distributed systems without extra boilerplate.
Explicitly supports stable Rust releases, ensuring compatibility and reducing friction for production deployments, as stated in the goals.
Builds directly on Rusoto, inheriting its potential bugs, slower update cycles, and feature gaps, which can limit access to newer DynamoDB APIs or optimizations.
As a version 0.x library, it may introduce breaking changes, posing migration challenges for long-term projects despite its productivity focus.
Requires running DynamoDB local via Docker for development testing, adding setup complexity compared to lightweight mocks or embedded databases.