A native Microsoft SQL Server (TDS) client for Rust with async support and protocol independence.
Tiberius is a native Microsoft SQL Server client for Rust that implements the TDS protocol. It enables Rust applications to connect to SQL Server databases asynchronously, supporting various network runtimes and encryption methods. The driver focuses on protocol correctness and performance without bundling higher-level features like connection pooling or ORM.
Rust developers building applications that need to interact with Microsoft SQL Server databases, especially those requiring async I/O and cross-platform compatibility.
Developers choose Tiberius for its pure Rust implementation, protocol independence, and async-first design. It provides a reliable, performant alternative to ODBC or other bindings, with support for modern SQL Server features and flexible TLS options.
TDS 7.2+ (Microsoft SQL Server) driver for Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works with any async runtime (Tokio, async-std, smol) via sockets implementing AsyncRead/AsyncWrite, allowing flexibility without being tied to a specific network stack.
Fully asynchronous network I/O enables high-performance database interactions, leveraging Rust's async ecosystem for scalable applications.
Supports both native OS TLS and rustls, with feature flags to choose or disable encryption, accommodating different security and dependency needs.
Tested on Linux, Windows, and macOS with SQL Server versions from 2005 to 2022, ensuring broad compatibility for diverse environments.
Lacks connection pooling, query building, and ORM features, requiring additional crates and boilerplate code for common database tasks.
On Unix-like systems, enabling integrated authentication requires GSSAPI/Kerberos libraries and domain configuration, which can be cumbersome and error-prone.
On macOS, the native-tls feature may not work well with SQL Server, forcing the use of rustls or vendored-openssl, adding complexity and potential maintenance overhead.