Data Catalog for Go. URI-Addressed. Type-Agnostic.

Register databases, caches, blob stores, and vector indices with URIs. Scio routes operations to the right provider and maps your data topology.

Get Started
import "github.com/zoobz-io/scio"

s := scio.New()

// Register resources — scio routes by URI scheme
s.RegisterDatabase("db://users", usersDB.Atomic())
s.RegisterStore("kv://sessions", sessionsStore.Atomic())
s.RegisterBucket("bcs://documents", docsBucket.Atomic())

// Uniform access via URI
atom, _ := s.Get(ctx, "db://users/123")
s.Set(ctx, "kv://sessions/abc", sessionAtom)
s.Put(ctx, "bcs://documents/report.pdf", data)

// Query databases through the catalog
results, _ := s.Query(ctx, "db://users", stmt, params)

// Introspect the topology
s.Sources()                    // all registered resources
s.FindBySpec(userSpec)         // resources sharing a type
s.FindByField("email")        // resources with an email field
s.Related("db://users")       // other resources holding User data
78%Test Coverage
A+Go Report
MITLicense
1.24.0+Go Version
v0.0.5Latest Release

Why Scio?

A unified routing layer between your application and every storage backend it touches.

URI Addressing

db://users/123, kv://sessions/abc, bcs://documents/report.pdf — one addressing scheme for every backend.

Type-Agnostic Atoms

Infrastructure works with typed maps, not your structs. Storage code never imports domain types.

Topology Discovery

Automatically detects when multiple resources share the same underlying type. No manual wiring.

Field-Level Search

Find every resource in your system that contains a specific field. Cross-backend introspection.

Resource Metadata

Tag resources with ownership, PII flags, versioning, and descriptions for governance and discovery.

Semantic Errors

Distinguishes routing errors from provider errors. Invalid URIs, unknown variants, and missing resources each have distinct types.

Capabilities

Atomic operations across databases, caches, blob stores, and vector indices — all through URI routing.

FeatureDescriptionLink
Atomic OperationsGet, Set, Delete, Exists across every registered backend. One interface, any provider.API
Database QueriesExecute typed queries via URI-addressed database resources with parameterized statements.Quickstart
Cache TTLSetWithTTL for cache resources with automatic expiration. Time-bounded entries out of the box.Concepts
Blob StoragePut and Get for object storage resources. Files, documents, and binary data via URI.Concepts
Topology IntrospectionSources, FindBySpec, FindByField, Related — discover your data landscape at runtime.Architecture
Resource RegistrationRegister with descriptions, versions, tags, and ownership metadata for governance and discoverability.Quickstart

Articles

Browse the full scio documentation.

OverviewURI-based data catalog with atomic operations

Learn

Quick StartGet started with scio in 5 minutes
Core ConceptsUnderstanding scio's core abstractions
ArchitectureHow scio fits in your system

Reference

API ReferenceComplete API documentation for scio