Crate hdbconnect_async

source ·
Expand description

Asynchronous database driver for SAP HANA (TM).

hdbconnect_async is written completely in rust, its asynchronous model is based on tokio. It provides a lean, fast, and easy-to-use API for working with SAP HANA.

For usecases where you don’t need an asynchronous driver, you might want to use hdbconnect_async’s synchronous sibling, hdbconnect. The two drivers have a very similar API and share most of their implementation.

hdbconnect_async interoperates elegantly with all data types that implement the standard serde::Serialize and/or serde::Deserialize traits, for input and output respectively. So, instead of iterating over a resultset by rows and columns, you can assign the complete resultset directly to any rust structure that fits the data semantics.

hdbconnect_async implements this with the help of serde_db, a reusable library for simplifying the data exchange between application code and database drivers, both for input parameters (e.g. to prepared statements) and for results that are returned from the database.

In contrast to typical ORM mapping variants, this approach allows using the full flexibility of SQL (projection lists, all kinds of joins, unions, nested queries, etc). Whatever query you need, you just use it, without further ado for defining object models etc., and whatever result structure you want to read, you just use a corresponding rust structure into which you deserialize the data. It’s hard to use less code!

See code examples for an overview.

Modules§

  • Code examples.
  • Support for serializing from or deserializing into types of the time crate.
  • Non-standard types that are used to represent database values.
  • Constants for use in connection URLs.

Structs§

Enums§

  • The errors that can arise while deserializing with serde_db::de.
  • Describes the success of a command.
  • A list specifying categories of HdbError.
  • An enum that describes a single database return value.
  • Enum for all supported database value types.
  • Describes whether a parameter is Nullable or not or if it has a default value.
  • Describes whether a parameter is used for input, output, or both.
  • Error that can occur while serializing a standard rust type or struct into a SQL parameter.
  • Expresses where Certificates for TLS are read from.
  • Severity of a server message
  • Describes whether and how TLS is to be used.
  • ID of the value type of a database column or a parameter.

Traits§

Type Aliases§

  • Abbreviation of Result<T, HdbError>.