Skip to main content
RocksDB has an extensive ecosystem of language bindings maintained by the community. This page provides an overview of available bindings for various programming languages.

Available Bindings

Java

Official binding with full feature support

Python

Multiple Python bindings available

Go

High-performance Go bindings

Rust

Safe Rust wrappers for RocksDB

Node.js

JavaScript/TypeScript bindings

Ruby

Ruby gem for RocksDB

C#

.NET bindings for RocksDB

More Languages

Perl, PHP, Haskell, and others

Go

Recommended: Actively maintained, production-ready Go binding.

GitHub Repository

View grocksdb on GitHub

Rust

Multiple Rust bindings are available, with different levels of maturity and feature support:
Production-ready: Used by TiKV and other production systems.
This is a fork of spacejam/rust-rocksdb, actively maintained and used in production by PingCAP (TiKV).

GitHub Repository

View rust-rocksdb (PingCAP) on GitHub

Node.js

RocksDB binding for JavaScript and TypeScript applications:

NPM Package

View rocksdb on NPM

Ruby

Ruby gem providing RocksDB bindings:

RubyGems Package

View rocksdb-ruby on RubyGems

C#

Multiple .NET bindings are available:

GitHub Repository

View rocksdb-sharp on GitHub

Other Languages

Perl

CPAN Package

View RocksDB on CPAN

PHP

GitHub Repository

View rocksdb-php on GitHub

Haskell

Hackage Package

View rocksdb-haskell on Hackage

D Programming Language

GitHub Repository

View RocksDB binding for D on GitHub

Erlang

GitLab Repository

View erlang-rocksdb on GitLab

Elixir

GitHub Repository

View rox on GitHub

Nim

GitHub Repository

View nim-rocksdb on GitHub

Swift / Objective-C

iOS and macOS binding for Swift and Objective-C:

GitHub Repository

View ObjectiveRocks on GitHub

Choosing a Binding

When selecting a language binding for your project, consider:

Maintenance Status

Check recent commits and issue activity. Prefer actively maintained bindings over abandoned projects.

Feature Completeness

Ensure the binding supports the RocksDB features you need (transactions, column families, etc.).

Production Usage

Look for bindings used in production environments, which tend to be more stable and well-tested.

Performance

Some bindings have better performance characteristics than others. Check benchmarks if performance is critical.

Documentation

Good documentation and examples make it easier to get started and troubleshoot issues.

Community Support

Active communities provide help, fixes, and improvements. Check GitHub stars, issues, and discussions.

Contributing a Binding

If you’ve created a RocksDB binding for a language not listed here, or want to improve an existing binding:
1

Create or Improve

Develop a high-quality binding with comprehensive test coverage
2

Document

Provide clear documentation, examples, and installation instructions
3

Submit PR

Open a pull request to add your binding to the official LANGUAGE-BINDINGS.md file
The bindings listed here are maintained by the community, not the RocksDB core team. Maintenance status and quality may vary.

Resources

Language Bindings List

Official list of all known RocksDB language bindings

RocksDB Wiki

Comprehensive documentation for RocksDB features

Java Binding

Official Java binding documentation

Python Binding

Python binding documentation and guides

Next Steps

Getting Started

Learn RocksDB fundamentals

Basic Operations

Master core database operations

Configuration

Configure RocksDB for your use case

Performance

Optimize RocksDB performance