Mongo Rust driver built on top of the Mongo C driver
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Thijs Cadier f69ea92007 Bump version 1 year ago
.semaphore Move back to static linking 4 years ago
mongoc-sys Bump version 1 year ago
src Bump mongoc driver to 1.22.0 2 years ago
tests Upgrade mongoc to 1.17 4 years ago
.gitignore Upgrade mongoc to 1.17 4 years ago
CHANGELOG.md Bump version 1 year ago
Cargo.toml Bump version 1 year ago
LICENSE-APACHE Use dual Apache/MIT license 9 years ago
LICENSE-MIT Use dual Apache/MIT license 9 years ago
README.md Remove travis from readme and cargo config 3 years ago

README.md

Mongo Rust Driver

Crate

Mongo Rust driver built on top of the Mongo C driver. This driver is a thin wrapper around the production-ready C driver that provides a safe and ergonomic Rust interface which handles all the gnarly usage details of the C driver for you.

Bson encoding and decoding is handled by the bson crate, the bindings are based on generated bindings by bindgen.

The API should still be considered experimental, but I'm not expecting changes at the moment.

Documentation

Compatibility

The driver currently only builds on Unix, tested on Mac Os X and Linux so far. It's compatible with MongoDB 2.6 up to 3.4 and has full replica set and SSL support.

Installation

If you have any trouble installing the crate (linking openssl can be tricky) please check out the installation instructions for the C driver.

To build on Mac install OpenSSL 1.1 and cmake:

brew install openssl@1.1
brew install cmake

Export these env vars the before you make a clean build:

export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

Logging

All internal logging by mongoc is redirected to the macros in the log crate. See the log docs to configure output in your application.

SSL test

There is a test included to connect to a replica set over SSL. To skip this test:

SKIP_SSL_CONNECTION_TESTS=true cargo test

To run this tests fill these environment variables with something appropiate to connect to a replica set:

MONGO_RUST_DRIVER_SSL_URI
MONGO_RUST_DRIVER_SSL_PEM_FILE
MONGO_RUST_DRIVER_SSL_CA_FILE

Examples

See the tests directory for examples of how to use the driver.

License

Licensed under either of

at your option.

Contribution

Contributions are very welcome, only the functionality we use has been wrapped so far. Please write a test for any behavior you add.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.