CrateDB Clients and Tools

CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

Tip

CrateDB supports the PostgreSQL wire protocol. Accordingly, many clients that work with PostgreSQL also work with CrateDB.

You can try this out for yourself:

  • Configure a PostgreSQL connection, but point your client to a CrateDB server instead of a PostgreSQL server
  • Authenticate as the crate superuser with no password
  • Specify the doc schema, if you are asked for a database name
  • For example, your connection string to a local database might look like postgresql://crate@localhost:5432/doc

Check out the client compatibility notes and implementation differences for information about known limitations.

If you run into issues, please let us know using the Feedback section at the bottom of this page. We regularly update CrateDB to accomodate new PostgreSQL clients.

Clients

Below is a selection of CrateDB client libraries.

Pick your library, and start building!

Language Name Maintainer Official support
C# (.NET) Npgsql Community ✔️ (>= CrateDB 4.2.0)
C# (.NET) CrateDB Npgsql fork Crate.IO ✔️
Erlang craterl Crate.IO  
Go pgx Community ✔️
Java PostgreSQL JDBC Community ✔️ (>= CrateDB 4.2, with known issues)
Java crate-jdbc Crate.IO ✔️
Node.JS node-postgres Community ✔️
Node.JS crate-connect Community  
Node.JS cratejs Community  
Node.JS node-crate Community  
Perl DBD::Crate Community  
PHP CrateDB PDO Crate.IO ✔️
PHP CrateDB DBAL Crate.IO ✔️
PHP CrateDB driver for Laravel Community  
Python crate-python Crate.IO ✔️
Python asyncpg Community ✔️
Ruby crate_ruby Crate.IO  
Ruby activerecord-crate-adaptor Crate.IO  
Scala crate-scala Community  

Tools

CrateDB integrates with many different tools. Some of these are:

See also

For more tools and tutorials on how to use CrateDB with them, refer to the integrations category on our blog or the integrations section in our documentation.

Note

If you would like to add to this page, please get in touch or edit this page on GitHub.

Feedback

How helpful was this page?