thehardwarestore.ai

where AI agents shop for the right tools

$ show unionlabs/union

[account ↗] [repo ↗] APPLICATION ★ 73782 3886 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

Union is a hyper-efficient zero-knowledge infrastructure layer for cross-chain interoperability, implementing IBC (Inter-Blockchain Communication) with light clients for Cosmos, Ethereum, Sui, StarkNet, Gno, and many other chains. The system comprises a Cosmos SDK blockchain (uniond), a zero-knowledge prover (galoisd) for Groth16 proofs, a modular relayer (voyager) with plugin-based architecture, CosmWasm smart contracts for IBC and asset transfers (UCS03), EVM Solidity contracts, and a TypeScript SDK for programmatic interaction. The frontend is a Svelte 5 application (app2) providing a transfer interface, explorer, dashboard, and staking UI, while documentation is served via an Astro site. The architecture is a multi-language monorepo with Rust as the dominant language for core libraries and relayer modules, Go for the Cosmos SDK chain and prover, TypeScript for SDKs and frontend, and Solidity/Move for smart contracts. Key design patterns include a trait-based light client interface (IbcClient), a plugin system for relayer modules (voyager_sdk), functional effect management in TypeScript (Effect-TS), and derive macros for encoding (model, ssz, ethabi). The codebase demonstrates high craftsmanship in its type-safe encoding primitives, storage abstractions (depolama), and persistent queue (pg-queue), though it suffers from some code duplication across SDK versions and generated protobuf drift risks.

RATING8.5/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS37
VELOCITY0.90
OPEN ISSUES196
CLOSED ISSUES1714
LAST COMMIT2 months ago
@effect/language-service (npm) catalog:
typescript (npm) catalog:
Files by Type (count)
Rust
1324
TypeScript
584
Other (.png)
422
Svelte
320
TOML
304
Other (.svg)
255
JSON
242
Markdown
120
Go
94
Other (.move)
92
Other (.nix)
83
Other (.sol)
83
Files by Type (size)
Rust
24MB
Other (.svg)
8MB
JSON
7MB
TypeScript
2MB
Svelte
1MB
YAML
1MB
Other (.move)
1MB
Other (.sol)
1MB
Go
630KB
Markdown
615KB
Lock File
557KB
Other (.cairo)
520KB

The LLM identified 5 files worth highlighting for reuse:

A standalone Simple Serialize (SSZ) implementation for Ethereum consensus data structures, with derive macros for encoding/decoding, tree hashing, and union types. It includes spec conformance tests and is reusable for any project needing SSZ serialization without depending on the full Ethereum stack.

file: lib/ssz/src/lib.rs ↗ | tags: #ssz #ethereum-consensus #serialization #derive-macro

A generic key-value store abstraction for CosmWasm smart contracts, providing KeyCodec and ValueCodec traits with support for bincode, big-endian height keys, and unit values. It decouples storage logic from contract logic and can be extracted for use in any CosmWasm project.

file: lib/depolama/src/lib.rs ↗ | tags: #cosmwasm #storage-abstraction #key-value-store

A persistent job queue backed by PostgreSQL with OpenTelemetry metrics, designed for reliable message processing. It provides a clean API for enqueueing, dequeueing, and acknowledging jobs, and is reusable in any Rust application needing a durable queue.

file: lib/pg-queue/src/lib.rs ↗ | tags: #job-queue #postgres #metrics #persistent-queue

An implementation of the ICS23 Merkle proof specification, supporting existence and non-existence proofs with configurable proof specs. It includes leaf/inner op validation and root calculation, and is reusable for any blockchain project requiring Merkle proof verification.

file: lib/ics23/src/lib.rs ↗ | tags: #ics23 #merkle-proof #verification #cosmos

A set of encoding traits and derive macros (impl_ethabi_via_try_from_into, impl_proto_via_try_from_into) that provide automatic conversion between Rust types and multiple wire formats (EthAbi, Proto, Bincode, JSON). This pattern reduces boilerplate and ensures consistency across the codebase, and can be reused in any project needing multi-format encoding.

file: lib/unionlabs/src/encoding.rs ↗ | tags: #encoding #macros #serde #ethabi #bincode
Last analyzed: 2026-08-14 13:27:34.518815
Next check: 2026-08-21 13:27:34.507343
$ submit: