All Projects → prisma → Quaint

prisma / Quaint

Licence: apache-2.0
SQL Query AST and Visitor for Rust

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Quaint

Better Sqlite3
The fastest and simplest library for SQLite3 in Node.js.
Stars: ✭ 2,778 (+921.32%)
Mutual labels:  sql, sqlite
Cg Sql
CG/SQL is a compiler that converts a SQL Stored Procedure like language into C for SQLite. SQLite has no stored procedures of its own. CG/CQL can also generate other useful artifacts for testing and schema maintenance.
Stars: ✭ 210 (-22.79%)
Mutual labels:  sql, sqlite
Kuery
Strongly typed SQL in Kotlin
Stars: ✭ 199 (-26.84%)
Mutual labels:  sql, sqlite
Nut
Advanced, Powerful and easy to use ORM for Qt
Stars: ✭ 181 (-33.46%)
Mutual labels:  sql, sqlite
Termsql
Convert text from a file or from stdin into SQL table and query it instantly. Uses sqlite as backend. The idea is to make SQL into a tool on the command line or in scripts.
Stars: ✭ 230 (-15.44%)
Mutual labels:  sql, sqlite
Geopackage Js
GeoPackage JavaScript Library
Stars: ✭ 191 (-29.78%)
Mutual labels:  sql, sqlite
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 2,315 (+751.1%)
Mutual labels:  sql, sqlite
Atdatabases
TypeScript clients for databases that prevent SQL Injection
Stars: ✭ 154 (-43.38%)
Mutual labels:  sql, sqlite
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+941.18%)
Mutual labels:  sql, sqlite
Heidisql
A lightweight client for managing MariaDB, MySQL, SQL Server, PostgreSQL and SQLite, written in Delphi
Stars: ✭ 2,864 (+952.94%)
Mutual labels:  sql, sqlite
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+712.87%)
Mutual labels:  sql, sqlite
E Commerce Db
Database schema for e-commerce (webstores) sites.
Stars: ✭ 245 (-9.93%)
Mutual labels:  sql, sqlite
Rom Sql
SQL support for rom-rb
Stars: ✭ 169 (-37.87%)
Mutual labels:  sql, sqlite
Trilogy
TypeScript SQLite layer with support for both native C++ & pure JavaScript drivers.
Stars: ✭ 195 (-28.31%)
Mutual labels:  sql, sqlite
Oreilly getting started with sql
Database files for the O'Reilly book "Getting Started with SQL: A hands on approach for beginners" http://goo.gl/z3zG54
Stars: ✭ 156 (-42.65%)
Mutual labels:  sql, sqlite
Askgit
Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊
Stars: ✭ 2,707 (+895.22%)
Mutual labels:  sql, sqlite
Oreilly intermediate sql for data
Resources for the O'Reilly Online Training "Intermediate SQL For Data Analysis"
Stars: ✭ 136 (-50%)
Mutual labels:  sql, sqlite
Efcore.bulkextensions
Entity Framework Core Bulk Batch Extensions for Insert Update Delete Read (CRUD), Truncate and SaveChanges operations on SQL Server, PostgreSQL, SQLite
Stars: ✭ 2,295 (+743.75%)
Mutual labels:  sql, sqlite
Grdbcombine
GRDB ❤️ Combine
Stars: ✭ 220 (-19.12%)
Mutual labels:  sql, sqlite
Sequelize Auto Migrations
Migration generator && runner for sequelize
Stars: ✭ 233 (-14.34%)
Mutual labels:  sql, sqlite

Quaint

crates.io docs.rs Build status Discord

Quaint is an abstraction over certain SQL databases. It provides:

  • An AST for building dynamic SQL queries.
  • Visitors for different databases to generate SQL strings.
  • Connectors to abstract over results and querying.
  • Pooling with mobc
  • Async/await and Futures 0.3

Documentation

Feature flags

  • mysql: Support for MySQL databases.
  • postgresql: Support for PostgreSQL databases.
  • sqlite: Support for SQLite databases.
  • mssql: Support for Microsoft SQL Server databases.
  • pooled: A connection pool in pooled::Quaint.
  • json: JSON type support with serde_json crate.
  • uuid: UUID type support with uuid crate.
  • chrono: DateTime type support with chrono crate.
  • serde-support: Deserialize support from result set with serde crate.
  • bigdecimal: Numeric values can be read as BigDecimal.

Goals:

  • Query generation when the database and conditions are not known beforehand.
  • Parameterized queries and SQL injection protection.
  • A modular design, a separate AST and separate visitors and connectors.

Non-goals:

  • Database-level type-safety in query building or being an ORM.

For type-safe database abstraction, Diesel is an excellent choice.

Testing:

  • See .envrc for connection params. Override variables if different. MySQL, PostgreSQL and SQL Server needs to be running for tests to succeed.

Then:

> cargo test

Query debug

The queries can be logged by setting the LOG_QUERIES environment variable to any value. They'll be logged at the INFO level and are visible when having a logger in scope.

Security

If you have a security issue to report, please contact us at [email protected]

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].