Skip to content

Rust, C and C++ client for QuestDB InfluxDB Line Protocol over TCP

License

Notifications You must be signed in to change notification settings

merowinger92/c-questdb-client

 
 

Repository files navigation

c-questdb-client

QuestDB - Client Library for Rust, C and C++

This library makes it easy to insert data into QuestDB.

This client library implements the InfluxDB Line Protocol (ILP) over TCP.

  • Implementation is in Rust, with no additional run-time or link-time dependencies on the C++ standard library or other libraries.
  • We ship both a static and a dynamic library.
  • The library exposes Rust, C11 and C++17 APIs.
  • The C++ API is a header-only wrapper over the C API.
  • This library also has separate Python bindings.

Insertion Protocols Overview

Inserting data into QuestDB can be done via one of three protocols.

Protocol Record Insertion Reporting Data Insertion Performance
ILP Errors in logs; Disconnect on error Best
CSV Upload via HTTP Configurable Very Good
PostgreSQL Transaction-level Good

This library implements the ILP protocol and mitigates the lack of confirmation and error reporting by validating data ahead of time before any data is sent to the database instance.

For example, the client library will report that a supplied string isn't encoded in UTF-8. Some issues unfortunately can't be caught by the library and require some care and diligence to avoid data problems.

For an overview and code examples, see the ILP page of the developer docs.

To understand the protocol in more depth, consult the protocol reference docs.

Getting Started

To get started, read the language-specific guides.

C

C++

Rust

Python

Further Topics

Community

If you need help, have additional questions or want to provide feedback, you may find us on Slack.

You can also sign up to our mailing list to get notified of new releases.

License

The code is released under the Apache License.

About

Rust, C and C++ client for QuestDB InfluxDB Line Protocol over TCP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 51.9%
  • Rust 24.5%
  • CMake 12.3%
  • Python 8.4%
  • C 2.9%