All Projects → H2CO3 → Avocado

H2CO3 / Avocado

Licence: mit
Strongly-typed MongoDB driver for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Avocado

Lungo
A MongoDB compatible embeddable database and toolkit for Go.
Stars: ✭ 343 (+390%)
Mutual labels:  bson, mongo, database, mongodb
Mongo Cxx Driver
C++ Driver for MongoDB
Stars: ✭ 792 (+1031.43%)
Mutual labels:  bson, mongodb-driver, database, mongodb
Lua Mongo
MongoDB Driver for Lua
Stars: ✭ 81 (+15.71%)
Mutual labels:  bson, mongo, mongodb-driver, mongodb
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (+168.57%)
Mutual labels:  json, database, mongodb
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 2,315 (+3207.14%)
Mutual labels:  database, mongodb, databases
Noproto
Flexible, Fast & Compact Serialization with RPC
Stars: ✭ 138 (+97.14%)
Mutual labels:  json, bson, databases
Kafka Connect Mongodb
**Unofficial / Community** Kafka Connect MongoDB Sink Connector - Find the official MongoDB Kafka Connector here: https://www.mongodb.com/kafka-connector
Stars: ✭ 137 (+95.71%)
Mutual labels:  json, bson, mongodb
Bigchaindb
Meet BigchainDB. The blockchain database.
Stars: ✭ 3,768 (+5282.86%)
Mutual labels:  json, database, mongodb
Bson4jackson
A pluggable BSON generator and parser for the Jackson JSON processor.
Stars: ✭ 244 (+248.57%)
Mutual labels:  json, bson, mongodb
Mongo Seeding
The ultimate solution for populating your MongoDB database.
Stars: ✭ 375 (+435.71%)
Mutual labels:  mongo, database, mongodb
Denodb
MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno
Stars: ✭ 498 (+611.43%)
Mutual labels:  mongo, database, mongodb
Migrate Mongo
A database migration tool for MongoDB in Node
Stars: ✭ 481 (+587.14%)
Mutual labels:  mongo, database, mongodb
Alcinoe
Alcinoe Component Library For Delphi. Full opengl video player, WebRTC delphi wrapper, native ios/android TEdit, Improuved firemonkey controls, Firebase cloud messaging, Android/ios facebook sdk login, Json/Bson Parser, ImageMagick wrapper, MongoDb client And much more
Stars: ✭ 657 (+838.57%)
Mutual labels:  json, bson, mongodb-driver
Qmgo
Qmgo - The Go driver for MongoDB. It‘s based on official mongo-go-driver but easier to use like Mgo.
Stars: ✭ 444 (+534.29%)
Mutual labels:  mongodb-driver, database, mongodb
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+10917.14%)
Mutual labels:  database, mongodb, databases
Jsonlite
A simple, self-contained, serverless, zero-configuration, json document store.
Stars: ✭ 819 (+1070%)
Mutual labels:  json, database, databases
Jsonj
A fluent Java API for manipulating json data structures
Stars: ✭ 42 (-40%)
Mutual labels:  json, bson
Phalcon Mongodb Odm
MongoDB ODM for Phalcon framework for new mongodb php extension with query builder and rich functionality
Stars: ✭ 42 (-40%)
Mutual labels:  mongodb-driver, mongodb
Uvicorn Gunicorn Fastapi Docker
Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python 3.6 and above with performance auto-tuning. Optionally with Alpine Linux.
Stars: ✭ 1,014 (+1348.57%)
Mutual labels:  json-schema, json
Mongoc.jl
MongoDB driver for the Julia Language
Stars: ✭ 46 (-34.29%)
Mutual labels:  mongodb-driver, mongodb

Avocado, the strongly-typed MongoDB driver

Avocado on crates.io Avocado on docs.rs rustc Avocado Download Avocado License Lines of Code Twitter

goto counter unsafe counter fuck counter

Usage

  • See the online documentation above, or open it locally:

  • cargo doc --open

  • Check out the examples/ folder

  • More high-level information can be found on the project page.

  • The schema_validation feature can be enabled (it's enabled by default), in which case the DatabaseExt::empty_collection() method becomes available. If a collection is created using this method, it will add a JSON schema validation pass and specify the schema as generated by magnet.

  • The raw_uuid feature (also enabled by default) adds some useful extension methods to make it more convenient to work with UUIDs as the type of the _id field.

    This can potentially be slow if you are performing many insertions into a collection of a complex type. However, it dynamically ensures that other users/drivers can't put malformed data in the collection. Therefore it's probably more useful if you or somebody else are accessing a database from outside the Avocado driver too. It's also great for debugging Avocado itself.

Changelog

v0.6.0

  • Fix #6 by adding a context dictionary to Error.

v0.5.0

  • Fix #5 by adding an #[options(...)] attribute to the Doc derive proc-macro.

v0.4.0

  • Fix #2 by adding a &self parameter to the options() methods on ops:: traits.

v0.3.3

  • Fix a deprecation warning related to Uuid::from_random_bytes()
  • Catch some errors that incorrectly pass through the MongoDB client's Cursor API

v0.3.2

  • Added a remove_inner_doc() method to DocumentExt. This allows for the easy chaining of removal from hierarchically contained Documents in transform().
  • Fixed a bug where inserting 0 entities into a collection failed.
  • Fixed the incorrect ordering of the key and the value type in the error message generated by DocumentExt::remove_*() methods.

v0.3.1

  • Added a DocumentExt trait to the prelude for convenient and idiomatic implementation of transform(raw: Document) -> Result<Bson> methods
  • Hopefully fixed the code so that docs.rs can handle it now

v0.3.0

  • Added Doc::id() and Doc::set_id() methods for the sake of better efficiency in some Collection methods
    • This means that single-element wrappers such as Box<Doc> and RefCell<Doc> can no longer implement Doc themselves
  • Added Collection::find_one_and_delete(), Collection::find_one_and_replace(), and Collection::find_one_and_update() methods
  • Added more documentation and clarified/improved existing docs
  • Added more tests, including compile-time tests for cases when #[derive(Doc)] should fail, as well as testing that an optional _id is correctly allowed

Compile-time testing the derive macro

Due to a bug in compiletest_rs, running the tests that check the error messages of the #[derive(Doc)] proc-macro requires running cargo clean first, otherwise compilation will fail with E0464.

Therefore, the recommended way of running the tests is:

cargo clean && cargo test

TODO:

  • Add weights property to text indices
  • Add migrations
  • Default Doc::Id to ObjectId and Query::Output and FindAndUpdate::Output to T, once #29661 is stabilized
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].