A simple and powerful toolkit for BoltDB that provides indexes, advanced queries, and CRUD operations for Go applications.
Storm is a Go library that enhances BoltDB with additional features like automatic indexing, a query system, and CRUD operations. It simplifies working with BoltDB by providing an intuitive API for storing and retrieving structured data without sacrificing performance.
Go developers building applications that require an embedded database with structured data storage, indexing, and querying capabilities.
Storm extends BoltDB with ORM-like features while keeping the simplicity and efficiency of an embedded key/value store, making it ideal for projects that need more than raw BoltDB but don't require a full SQL database.
Simple and powerful toolkit for BoltDB
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses struct tags to automatically create and manage indexes, reducing manual setup as shown in the README's examples with fields like `storm:"index"`.
Supports advanced matchers for equality, ranges, regex, and logical combinations (AND/OR/NOT), enabling complex data retrieval without raw BoltDB code.
Allows data serialization using JSON, GOB, Protobuf, MessagePack, and more via codec options, providing flexibility in storage formats.
Uses nested buckets through nodes to organize data hierarchically, useful for structuring application data, demonstrated in the nodes section.
Storm inherits BoltDB's concurrency model, which can bottleneck performance in write-heavy scenarios due to single-writer transactions.
Implementing non-default serialization like Protobuf requires additional steps, such as using external tools for tag injection, as noted in the README.
Lacks support for joins, aggregations, and other advanced SQL features, making it unsuitable for complex relational data needs compared to full SQL databases.