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 Startedimport "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 dataWhy 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.
| Feature | Description | Link |
|---|---|---|
| Atomic Operations | Get, Set, Delete, Exists across every registered backend. One interface, any provider. | API |
| Database Queries | Execute typed queries via URI-addressed database resources with parameterized statements. | Quickstart |
| Cache TTL | SetWithTTL for cache resources with automatic expiration. Time-bounded entries out of the box. | Concepts |
| Blob Storage | Put and Get for object storage resources. Files, documents, and binary data via URI. | Concepts |
| Topology Introspection | Sources, FindBySpec, FindByField, Related — discover your data landscape at runtime. | Architecture |
| Resource Registration | Register with descriptions, versions, tags, and ownership metadata for governance and discoverability. | Quickstart |
Articles
Browse the full scio documentation.