Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. Storm

Storm

MITGov3.2.1

A simple and powerful toolkit for BoltDB that provides indexes, advanced queries, and CRUD operations for Go applications.

GitHubGitHub
2.1k stars143 forks0 contributors

What is Storm?

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.

Target Audience

Go developers building applications that require an embedded database with structured data storage, indexing, and querying capabilities.

Value Proposition

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.

Overview

Simple and powerful toolkit for BoltDB

Use Cases

Best For

  • Adding structured data storage with indexing to Go applications using BoltDB
  • Building Go applications that require complex queries on embedded databases
  • Simplifying CRUD operations for BoltDB without writing raw BoltDB code
  • Organizing data into nested buckets for hierarchical storage
  • Using multiple serialization formats (JSON, Protobuf, etc.) with BoltDB
  • Implementing transactions with structured data in BoltDB

Not Ideal For

  • Projects requiring high-throughput, concurrent write operations due to BoltDB's single-writer model limiting performance
  • Applications needing complex relational queries, joins, or SQL-style aggregations beyond Storm's matcher-based system
  • Teams that prefer a database-agnostic ORM, as Storm is tightly coupled with BoltDB and not easily swappable
  • Large-scale data storage exceeding BoltDB's optimal capacity for embedded databases, where distributed systems might be better

Pros & Cons

Pros

Automatic Indexing

Uses struct tags to automatically create and manage indexes, reducing manual setup as shown in the README's examples with fields like `storm:"index"`.

Flexible Query System

Supports advanced matchers for equality, ranges, regex, and logical combinations (AND/OR/NOT), enabling complex data retrieval without raw BoltDB code.

Multiple Serialization Formats

Allows data serialization using JSON, GOB, Protobuf, MessagePack, and more via codec options, providing flexibility in storage formats.

Hierarchical Data Organization

Uses nested buckets through nodes to organize data hierarchically, useful for structuring application data, demonstrated in the nodes section.

Cons

BoltDB Limitations Inherited

Storm inherits BoltDB's concurrency model, which can bottleneck performance in write-heavy scenarios due to single-writer transactions.

Complex Setup for Custom Codecs

Implementing non-default serialization like Protobuf requires additional steps, such as using external tools for tag injection, as noted in the README.

Limited Query Capabilities

Lacks support for joins, aggregations, and other advanced SQL features, making it unsuitable for complex relational data needs compared to full SQL databases.

Frequently Asked Questions

Quick Stats

Stars2,097
Forks143
Contributors0
Open Issues63
Last commit2 years ago
CreatedSince 2016

Tags

#data-indexing#orm#database#bucket#storm#query-engine#key-value-store#boltdb#embedded-database#transactions#database-toolkit#go#toolkit

Built With

G
Go
B
BoltDB

Included in

Go169.1k
Auto-fetched 17 hours ago

Related Projects

fzffzf

:cherry_blossom: A command-line fuzzy finder

Stars81,940
Forks2,820
Last commit1 day ago
divedive

A tool for exploring each layer in a docker image

Stars54,353
Forks1,991
Last commit7 months ago
HubHub

A command-line tool that makes git easier to use with GitHub.

Stars22,957
Forks2,222
Last commit2 years ago
lolo

💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

Stars21,394
Forks946
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub