# rust-oracledb

> The original clean-room, pure-Rust async driver for Oracle Database: a from-scratch port of python-oracledb’s thin-mode wire protocol. No Instant Client, no OCI, thread-safe, fully async, zero unsafe code.

Source: https://durakovic.ai/projects/rust-oracledb/ · Author: Dipl.-Ing. Muhammed Durakovic · Updated: 2026-10-14

- **Author:** [Dipl.-Ing. Muhammed Durakovic](https://durakovic.ai/about/)
- **Conformance:** 2,462 of python-oracledb’s own conformance tests passing
- **Crate:** [`oraclemcp-driver-cx`](https://crates.io/crates/oraclemcp-driver-cx) on crates.io (published as `oracledb` 0.1–0.9, June–July 2026)
- **Source:** [github.com/MuhDur/rust-oracledb](https://github.com/MuhDur/rust-oracledb)
- **Used by:** [oraclemcp](https://durakovic.ai/projects/oraclemcp/) — safe Oracle access for AI agents

## Credited by Oracle

In August 2026 the `oracledb` crate name passed to Oracle’s driver team for their official Rust driver, [oracle/rust-oracledb](https://github.com/oracle/rust-oracledb). Its README records the history:

> “This replaces the original Rust thin driver produced by Muhammed Durakovic. The new name for that driver is oraclemcp-driver-cx.”
>
> — [Oracle, rust-oracledb README — History](https://github.com/oracle/rust-oracledb#history)

## Why it exists

Talking to Oracle from Rust used to mean Oracle Instant Client: a native C dependency, platform-specific binaries and unsafe FFI. A thin-mode driver speaks Oracle’s wire protocol (TNS/TTC) directly, so a Rust binary connects to Oracle with nothing else installed — which is what makes small, auditable tools like an MCP server for AI agents practical.

## How it was verified

Instead of claiming parity, the driver runs python-oracledb’s own conformance suite: 2,462 tests passing. The port is clean-room — written from protocol behaviour and tests, not copied code — and contains no `unsafe`.

[View the source on GitHub](https://github.com/MuhDur/rust-oracledb)
