ScyllaDB Async Rust Driver
rust-postgres
Our great sponsors
ScyllaDB Async Rust Driver | rust-postgres | |
---|---|---|
10 | 14 | |
526 | 3,281 | |
3.8% | - | |
9.6 | 7.9 | |
1 day ago | 3 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ScyllaDB Async Rust Driver
- I've incidentally created one of the fastest bounded MPSC queue
- Catalytic, a Rust ORM for ScyllaDb
-
Problem using Command
I want to replicate this line in `Command` (from https://github.com/scylladb/scylla-rust-driver/pull/489/files):
-
cdrs VS scylla-rust-driver - a user suggested alternative
2 projects | 5 Mar 2022
Client-side driver for ScyllaDB written in pure Rust with a fully async API using Tokio. Takes advantage of ScyllaDB's shard-per-core architecture for low-latency distributed apps.
-
We’re Porting Our Database Drivers to Async Rust
Our Rust driver started as a humble hackathon project, but it has eventually grown to become our fastest and safest Cassandra Query Language (CQL) driver. We happily observed in our benchmarks that our ScyllaDB Rust Driver beats even the reference C++ driver in terms of raw performance, and that gave us an idea — why not unify all drivers to use Rust underneath?
-
Async Rust in Practice: Performance, Pitfalls, Profiling
A few weeks ago, an interesting issue appeared on our GitHub tracker. It was reported that, despite our care in designing the driver to be efficient, it proved to be unpleasantly slower than one of the competing drivers, cassandra-cpp, which is a Rust wrapper of a C++ CQL driver. The author of latte, a latency tester for Cassandra (and Scylla), pointed out that switching the back-end from cassandra-cpp to scylla-rust-driver resulted in an unacceptable performance regression. Time to investigate!
-
Any good, lightweight NoSQL databases with a Rust client/API and friendly licensing?
https://github.com/scylladb/scylla-rust-driver perhaps? No sure about licensing though
- New open-source CQL driver for Rust – 0.1.0
- Scylla Developer Hackathon: Rust Driver
rust-postgres
-
PostgreSQL Logical Replication Explained
For C there should be good options.
For Rust it doesn't appear that well-supported.
A very simple approach is to poll for changes using `pg_logical_slot_get_changes()` - that should work with any driver. That's what I used for my initial experimentation, before switching over to the streaming replication protocol for better performance.
The streaming replication protocol is not that complicated, but currently you'll have to handle some of the low-level protocol yourself, or work with some very experimental implementations. There's a project to help get you started at [1], and some more discussion at [2].
For the logical decoder, wal2json is quite nice to experiment with, but I've found pgoutput is not that complicated and gives you something closer to the raw data.
[1]: https://github.com/seddonm1/logicaldecoding/
[2]: https://github.com/sfackler/rust-postgres/issues/116
- Push-Based Outbox Pattern with Postgres Logical Replication
-
Rust async IS broken
This is a bit of a rant so please bear with me. I wrote a small utility program a long time ago that used this version of the postgres crate
-
Cómo usar gRPC con Rust Tonic y Postgres con ejemplos
En este post aprendermos a usar Rust, Tonic y la crate gRPC, y implementaremos un CRUD con Postgresql database.
-
Reviews of the Diesel ORM, are there better alternatives?
I can understand that this can be frustrating and I know that the situation there is not ideal for diesel. There are certainly things to improve there by either providing a bundling support which builds the native library as part of the normal build process or by implementing a pure rust connection implementation. Both is possible with diesel, but requires some work. At least the pure rust connection implementation is something that can be provided by a third party crate now with upcoming diesel 2.0 release. If you are interested in that checkout this and this issue. As for the bundling support: This requires changes in the mysqlclient-sys and pq-sys crates. Again help there is welcome. In the end it makes me sad that some people have repeating decided that a solution to this problem is to write just another crate instead of helping to fix these issues. This just results in everyone have more work to do, as there are now two non-perfect solutions instead of having one slightly improved solution.
-
GitHub - tzConnectBerlin/rust-pg_bigdecimal: A Rust native datatype for Postgres' Numeric type, to be used with Rust's "Postgres" library.
We created this little library to have a fully native type for Postgres Numerics with the rust-postgres (https://github.com/sfackler/rust-postgres) library.
-
pigeon-rs: Open source email automation written in Rust
The problem with a crate like postgres is that you have to define the types of the query at compile-time. And if you use the simple query protocol in postgres, you just get a bunch of strings, i.e. no proper typing at all. However, for maximal flexibility arbitrary queries should work in pigeon, without knowing the database schema.
-
Announcing Usual -- a small nORM wrapper to make dealing with SQL easier (like tokio-postgres)
Some nifty things about usual: - It's a generic wrapper over any SQL "row" object. The first implementation that's provided is for tokio-postgres, but traits are available to implement over whatever you'd like. - It provides static typing for partial queries. That is, it supports fetching a subset of fields from a row and makes a unique type for the return value. This gives you some neat-o type safety like this:
-
How to use gRPC with Rust Tonic and Postgres database with examples
In this post, we will learn how to use Rust Tonic gRPC crate. We will learn how to implement CRUD with Postgresql database.
-
Hey Rustaceans! Got an easy question? Ask here (12/2021)!
(see: https://github.com/sfackler/rust-postgres/blob/e15c9b1415f69821799f1370246581c1600a6196/postgres-protocol/src/types/mod.rs#L137)
What are some alternatives?
kanal - The fast sync and async channel that Rust deserves
MeiliSearch - A lightning-fast search API that fits effortlessly into your apps, websites, and workflow
cdrs - Cassandra DB native client written in Rust language. Find 1.x versions on https://github.com/AlexPikalov/cdrs/tree/v.1.x Looking for an async version? - Check WIP https://github.com/AlexPikalov/cdrs-async
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
Catalytic - 🚀 Catalytic is an ORM for ScyllaDb and Cassandra which provides zero-cost abstractions for querying and generating Rust structs based on the database. Scylla and Cassandra are both NoSQL databases which can scale horizontally and hold large amounts of data.
tikv - Distributed transactional key-value database, originally created to complement TiDB
scylla2 - Yet another ScyllaDB Rust driver, but faster
r2d2 - A generic connection pool for Rust
scyllapy - Asyncronous modern python client for Cassandra and Scylla
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
latte - Latency Tester for Apache Cassandra
Rust Client for KairosDB - Rust client for KairosDB