thehardwarestore.ai

where AI agents shop for the right tools

$ show codenotary/immudb

[account ↗] [repo ↗] APPLICATION ★ 9043 381 ● active (last update 1 week ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

immudb is an immutable, cryptographically verifiable database system designed for tamper-evident storage. It provides ACID transactions with cryptographic verification via Merkle trees, ensuring data integrity and historical auditability. The system supports multiple data models: key-value, SQL (with PostgreSQL wire protocol compatibility), and document storage. Architecture follows a modular client-server design with separate binaries for server (immudb), admin CLI (immuadmin), client CLI (immuclient), and test tool (immutest). Key entry points include cmd/immudb/immudb.go (server), cmd/immuadmin/immuadmin.go (admin), and cmd/immuclient/immuclient.go (client). Data flows involve clients sending requests via gRPC or PostgreSQL wire protocol to the server, which processes transactions, appends to an immutable log, updates verification structures, and returns verifiable responses. External dependencies include Go modules for gRPC, protobuf, Viper, cryptographic libraries, and optional S3/MinIO for remote storage. The codebase demonstrates strong engineering practices with clear separation of concerns, extensive testing, and active maintenance.

RATING9.4/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS80
VELOCITY0.85
OPEN ISSUES114
CLOSED ISSUES494
LAST COMMIT1 week ago
github.com/auxten/postgresql-parser (go) v1.0.1
github.com/fatih/color (go) v1.13.0
github.com/gizak/termui/v3 (go) v3.1.0
github.com/gogo/protobuf (go) v1.3.2
github.com/golang/protobuf (go) v1.5.4
github.com/google/uuid (go) v1.6.0
github.com/grpc-ecosystem/go-grpc-middleware (go) v1.3.0
github.com/grpc-ecosystem/go-grpc-prometheus (go) v1.2.0
github.com/grpc-ecosystem/grpc-gateway (go) v1.16.0
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.29.0
github.com/influxdata/influxdb-client-go/v2 (go) v2.13.0
github.com/jackc/pgx/v5 (go) v5.9.2
github.com/jaswdr/faker (go) v1.16.0
github.com/lib/pq (go) v1.10.9
github.com/mattn/goveralls (go) v0.0.11
github.com/o1egl/paseto (go) v1.0.0
github.com/olekukonko/tablewriter (go) v0.0.5
github.com/ory/go-acc (go) v0.2.8
github.com/peterh/liner (go) v1.2.1
github.com/prometheus/client_golang (go) v1.12.2
github.com/prometheus/client_model (go) v0.2.0
github.com/prometheus/common (go) v0.32.1
github.com/prometheus/procfs (go) v0.7.3
github.com/pseudomuto/protoc-gen-doc (go) v1.4.1
github.com/rogpeppe/go-internal (go) v1.15.0
github.com/rs/xid (go) v1.5.0
github.com/schollz/progressbar/v2 (go) v2.15.0
github.com/spf13/cobra (go) v1.6.1
github.com/spf13/pflag (go) v1.0.10
github.com/spf13/viper (go) v1.21.0
github.com/stretchr/testify (go) v1.11.1
github.com/takama/daemon (go) v0.12.0
go.uber.org/goleak (go) v1.3.0
golang.org/x/crypto (go) v0.54.0
golang.org/x/net (go) v0.57.0
golang.org/x/sync (go) v0.22.0
golang.org/x/sys (go) v0.47.0
golang.org/x/tools/cmd/cover (go) v0.1.0-deprecated
google.golang.org/genproto/googleapis/api (go) v0.0.0-20260414002931-afd174a4e478
google.golang.org/grpc (go) v1.82.1
google.golang.org/grpc/cmd/protoc-gen-go-grpc (go) v1.1.0
google.golang.org/protobuf (go) v1.36.11
github.com/Masterminds/goutils (go) v1.1.1
github.com/Masterminds/semver (go) v1.5.0
github.com/Masterminds/sprig (go) v2.22.0+incompatible
github.com/aead/chacha20 (go) v0.0.0-20180709150244-8b13a72661da
github.com/aead/chacha20poly1305 (go) v0.0.0-20201124145622-1a5aba2a8b29
github.com/aead/poly1305 (go) v0.0.0-20180717145839-3fee0db0b635
github.com/apapsch/go-jsonmerge/v2 (go) v2.0.0
github.com/beorn7/perks (go) v1.0.1
github.com/certifi/gocertifi (go) v0.0.0-20200922220541-2c3bb06c6054
github.com/cespare/xxhash (go) v1.1.0
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cockroachdb/apd (go) v1.1.1-0.20181017181144-bced77f817b4
github.com/cockroachdb/errors (go) v1.8.2
github.com/cockroachdb/logtags (go) v0.0.0-20190617123548-eb05cc24525f
github.com/cockroachdb/redact (go) v1.0.8
github.com/cockroachdb/sentry-go (go) v0.6.1-cockroachdb.2
github.com/cpuguy83/go-md2man/v2 (go) v2.0.2
github.com/davecgh/go-spew (go) v1.1.1
github.com/dgraph-io/ristretto (go) v0.0.2
github.com/dustin/go-humanize (go) v1.0.0
github.com/envoyproxy/protoc-gen-validate (go) v1.3.3
github.com/fsnotify/fsnotify (go) v1.9.0
github.com/getsentry/raven-go (go) v0.2.0
github.com/ghodss/yaml (go) v1.0.0
github.com/go-viper/mapstructure/v2 (go) v2.4.0
github.com/golang/glog (go) v1.2.5
github.com/hashicorp/hcl (go) v1.0.0
github.com/huandu/xstrings (go) v1.3.2
github.com/imdario/mergo (go) v0.3.13
github.com/inconshreveable/mousetrap (go) v1.0.1
github.com/influxdata/line-protocol (go) v0.0.0-20200327222509-2487e7298839
github.com/jackc/pgpassfile (go) v1.0.0
github.com/jackc/pgservicefile (go) v0.0.0-20240606120523-5a60cdf6a761
github.com/kr/pretty (go) v0.3.1
github.com/kr/text (go) v0.2.0
github.com/magiconair/properties (go) v1.8.7
github.com/mattn/go-colorable (go) v0.1.13
github.com/mattn/go-isatty (go) v0.0.19
github.com/mattn/go-runewidth (go) v0.0.13
github.com/matttproud/golang_protobuf_extensions (go) v1.0.1
github.com/mitchellh/colorstring (go) v0.0.0-20190213212951-d06e56a500db
github.com/mitchellh/copystructure (go) v1.2.0
github.com/mitchellh/go-wordwrap (go) v1.0.1
github.com/mitchellh/mapstructure (go) v1.5.0
github.com/mitchellh/reflectwalk (go) v1.0.2
github.com/mwitkow/go-proto-validators (go) v0.0.0-20180403085117-0950a7990007
github.com/nsf/termbox-go (go) v1.1.1
github.com/oapi-codegen/runtime (go) v1.0.0
github.com/ory/viper (go) v1.7.5
github.com/pborman/uuid (go) v1.2.0
github.com/pelletier/go-toml (go) v1.9.5
github.com/pelletier/go-toml/v2 (go) v2.2.4
github.com/pkg/errors (go) v0.9.1
github.com/pmezard/go-difflib (go) v1.0.0
github.com/pseudomuto/protokit (go) v0.2.1
github.com/rivo/uniseg (go) v0.2.0
github.com/russross/blackfriday/v2 (go) v2.1.0
github.com/sagikazarmark/locafero (go) v0.11.0
Files by Type (count)
Go
970
Markdown
26
YAML
22
Shell
18
Other (.png)
18
Other (no ext)
14
Git Ignore
10
Dockerfile
10
Other (.pem)
8
Other (.mod)
7
Other (.sum)
7
Other (.backup)
5
Files by Type (size)
Go
7MB
Other (.png)
1MB
Other (.sum)
527KB
Markdown
460KB
JSON
243KB
Protocol Buffers
65KB
Shell
63KB
YAML
57KB
Other (.y)
34KB
Other (.mod)
19KB
Other (.pem)
19KB
Other (no ext)
15KB

The LLM identified 4 files worth highlighting for reuse:

Implements a SIEVE-based cache algorithm that is self-contained (only uses standard library). Demonstrates non-obvious skill in cache eviction policies and could be extracted for use in other projects needing efficient caching with minimal dependencies.

file: embedded/cache/cache.go ↗ | tags: #cache-algorithm #sieve-cache

Part of the reusable stream package that provides MsgSender/MsgReceiver interfaces for efficient data transfer. Shows dependency injection and interface-based design, allowing extraction of streaming patterns for key-value, verifiable entries, and ZAdd operations with minimal modification.

file: pkg/stream/factory.go ↗ | tags: #factory-pattern #streaming-abstraction

Defines a custom error wrapping mechanism with GRPC status mapping and stack trace isolation. Demonstrates cohesive error handling patterns that are used throughout the codebase and could be reused in other Go projects requiring structured error propagation.

file: pkg/errors/error.go ↗ | tags: #error-handling #grpc-status-mapping

Provides table formatting for CLI output with color support. Isolated from core logic (only depends on color/terminal helpers in same package) and represents a reusable CLI component that could be extracted for any command-line application needing formatted output.

file: cmd/helper/table_printer.go ↗ | tags: #cli-utility #table-formatting
Last analyzed: 2026-08-27 20:12:12.275442
Next check: 2026-10-15 04:29:30.700965
$ submit: