Client Library Comparison

Geode offers official clients for Go, Python, Rust, Node.js, and Zig. All clients implement the same QUIC + TLS protocol; higher-level conveniences differ by language.

Client Status Matrix

ClientPackageCurrent VersionMaturityBest For
Gogeodedb.com/geodemodule (rolling)ProductionServer-side Go apps, database/sql integration
Pythongeode-client0.3.19BetaAsync services, data tooling
Rustgeode-client0.1.1-alpha.8AlphaPerformance-critical backends
Node.js@geodedb/client1.0.0-alpha.15BetaTypeScript services, APIs
Ziggeode_client_zig0.1.0AlphaNative integrations, low-level control

Feature Comparison

FeatureGoPythonRustNode.jsZig
QUIC + TLS 1.3
gRPC transport
Connection pooling✅ (database/sql)✅ (basic)⚠️ (build your own)
Prepared statements✅ (client-side)✅ (client-side)⚠️ (manual)
Query builder⚠️ (internal modules)
Transactions✅ (protocol primitives)
Savepoints✅ (via GQL)⚠️ (manual)
DSN parsing✅ (URL helper)⚠️ (internal modules)
Auth helpers⚠️ (internal modules)

Quick Recommendations

  • Production Go: Choose the Go client for database/sql integration and mature tooling.
  • Async Python: Choose Python for asyncio apps and query builder helpers.
  • High-performance Rust: Choose Rust for low-latency services with typed values.
  • TypeScript services: Choose Node.js for strong typing and pooling.
  • Native Zig: Choose Zig when you want direct protocol control.