Skip to content

Releases: typedb/typedb-driver

TypeDB Driver 3.5.5

16 Oct 13:59
a56654c

Choose a tag to compare

Documentation: https://typedb.com/docs/core-concepts/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.5.5</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.5.5

HTTP Typescript driver

NPM package: https://www.npmjs.com/package/typedb-driver-http
Documentation: https://typedb.com/docs/drivers/

npm install [email protected]

New Features

Bugs Fixed

  • Fix transaction on_close and Java and Python block on close()

    We notice that calling transaction.close() does not wait until the server has freed up resource. This makes quick sequences, such as tests where transactions open and are followed by database deletes, unreliable. Further investigation that workarounds using the existing on_close callbacks in Python and Java caused segfaults. We fix both:

    1. Transaction.close() in Python and Java now blocks for 1 round trip. In Rust, this now returns a promise/future. In Java/Python, we pick the most relevant default and resolve the promise from Java/Python.
    2. We fix segfaults that occur when the Rust driver calls into Python/Java once the user attaches .on_close callbacks to transactions.

    We also fix nondeterministic errors:

    1. adding on_close callbacks must return a promise, since the implementation injects the callback into our lowest-level listener loop which may register the callback later. Not awaiting the on_close() registration will lead to hit or miss execution of the callback when registering on_close callbacks, not awaiting, and then closing the transaction immediately
    2. we add keepalive to the channel, without which messages sometimes get "stuck" on the client-side receiving end of responses from the server. No further clues found as to why this happens. See comments for more detail.

    We also add one major feature enhancement: configurable logging. All logging should now go through the tracing crate. We can configure logging levels for just the driver library with the TYPEDB_DRIVER_LOG or general RUST_LOG environment variables. By default we set it to info.

Code Refactors

Other Improvements

  • Fix Config

  • Trigger ci

  • Try to fix snapshot tests python 3.9

  • Update dependencies after servers relation index fix for CI tests
    Ensure drivers run new BDD tests for migration written with the core's relation index fix typedb/typedb#7594

  • Correct link in README

    Correct a link in the README that linked to nodejs instead of http-ts

  • HTTP/TS: Don't enforce Node 22 for installing the package

  • HTTP/TS: Fix response type checks throwing on certain inputs

    In the HTTP/TS driver, isApiErrorResponse and isOkResponse should never throw errors anymore for any input.

TypeDB Driver 3.5.0

16 Sep 16:57
d89b208

Choose a tag to compare

Documentation: https://typedb.com/docs/core-concepts/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.5.0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.5.0

HTTP Typescript driver

NPM package: https://www.npmjs.com/package/typedb-driver-http
Documentation: https://typedb.com/docs/drivers/

npm install [email protected]

New Features

  • Implement serde traits for JSON

    We implement serde's Serialize for ConceptDocument and our custom JSON type. This allows crates like axum that rely on serde to seamlessly return Json<ConceptDocument> from request handlers.

    We also implement Deserialize for JSON for convenience.

  • Update the HTTP-TS driver with analyze endpoint response
    Update the HTTP-TS driver with the response structure for the analyze endpoint

Bugs Fixed

  • Fix database importer decoding error
    Stabilize the database import function by eliminating rare decoding errors that could occur during the import of large datasets. All the exported files that the import function could not process are still valid and should be correctly imported after the proposed changes.

Other Improvements

  • Fix links

  • Update READMEs

TypeDB Driver 3.5.0-rc0

08 Sep 18:49
e4c3eaa

Choose a tag to compare

Documentation: https://typedb.com/docs/core-concepts/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.5.0-rc0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.5.0rc0

HTTP Typescript driver

NPM package: https://www.npmjs.com/package/typedb-driver-http
Documentation: https://typedb.com/docs/drivers/

npm install [email protected]

New Features

  • Update the HTTP-TS driver with analyze endpoint response
    Update the HTTP-TS driver with the response structure for the analyze endpoint

Bugs Fixed

  • Fix database importer decoding error
    Stabilize the database import function by eliminating rare decoding errors that could occur during the import of large datasets. All the exported files that the import function could not process are still valid and should be correctly imported after the proposed changes.

Other Improvements

  • Fix links

  • Update READMEs

TypeDB Driver 3.4.4

05 Aug 08:53
ca07f77

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.4.4</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.4.4

HTTP Typescript driver

NPM package: https://www.npmjs.com/package/typedb-driver-http
Documentation: https://typedb.com/docs/drivers/

npm install [email protected]

New Features

  • Typescript HTTP driver

    Add a relatively slim typescript driver based on our HTTP API, adapted from code used for this purpose in typedb-studio.

    This driver is published to npm under the name typedb-driver-http through the same process as the old nodejs driver.

  • Typescript HTTP driver docs generation

    Introduce docs generation for the Typescript HTTP driver, based on the existing strategy for the NodeJS driver.

    We divide the docs into:

    • Connection
    • Response
    • Concept
    • Query Structure

    within each section, static functions are grouped into a specific Static Functions section.

    Additionally, QueryConstraints, QueryVertices in query structure; and DriverParams in connection are used as sub-categories (that is, DriverParams, DriverParamsBasic, and DriverParamsTranslated are all grouped under DriverParams).

    We also implement functionality for handling:

    • type aliases
    • indexable properties (e.g. [varName: string]: Concept)

Bugs Fixed

Code Refactors

Other Improvements

  • Enforce explicit https addresses for TLS connections
    Drivers return explicit error messages when connection addresses and TLS options are mismatched. TLS connections require addresses to have https. Non-TLS connections require addresses not to have https.

  • Enable TLS by default in Python

    We want to enable a secure-by-default setting in TypeDB Drivers. In Java and Rust, DriverOptions have to be explicitly set, and there are no defaults. However, Python features a disabled TLS default. While this is compatible with TypeDB CE, it's an insecure default & not compatible with TypeDB Cloud without explicitly enabling it.

    Instead, we set the default to TLS being enabled in Python. This means when using an insecure, plaintext connection the user must explicitly set it, and is more likely to become aware of the plaintext communication.

  • Ensure PNPM config in CI matches config locally

    We add an .npmrc file to ensure the PNPM config in local machines and CI match so that installation succeeds in CI.

  • Install PNPM deps in CI release pipeline

    The release pipeline in CI now correctly installs PNPM dependencies for the HTTP TS driver.

  • Make the HTTP TypeScript driver dual-module (CJS+ESM)

    The HTTP TypeScript driver is now dual-module, offering both CommonJS and ES Module support.

  • Set HTTP Typescript driver dependencies as dev dependencies

    We set all dependencies of the Typescript HTTP driver as dev dependencies, as they aren't required at runtime.

  • Rename docs antora module

    We rename the docs antora module used to host the generated driver references from api-ref to external-typedb-driver, to support refactoring in the typedb docs repository.

  • Revert the HTTP driver to a CommonJS package

    We convert typedb-driver-http back into using commonjs. This allows us to also revert import/export syntax to not require file extensions.

  • Correct the package and tsconfig for HTTP driver

    We fix issues in package.json that prevented typedb-driver-http from being used correctly

  • Fix CircleCI release configuration for HTTP driver

    We fix a typo that made the CircleCI release configuration invalid.

  • Use release version of typedb server artifact

  • Update to latest typedb server artifact

TypeDB Driver 3.4.0

16 Jun 17:04
3378516

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.4.0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.4.0

New Features

  • Introduce file-based database export and import
    Introduce interfaces to export databases into schema definition and data files and to import databases using these files. Database import supports files exported from both TypeDB 2.x and TypeDB 3.x.

    Both operations are blocking and may take a significant amount of time to execute for large databases. Use parallel connections to continue operating with the server and its other databases.

    Usage examples in Rust:

    // export
    let db = driver.databases().get(db_name).await.unwrap();
    db.export_to_file(schema_file_path, data_file_path).await.unwrap();
    
    // import
    let schema = read_to_string(schema_file_path).unwrap();
    driver.databases().import_from_file(db_name2, schema, data_file_path).await.unwrap();

    Usage examples in Python:

    # export
    database = driver.databases.get(db_name)
    database.export_to_file(schema_file_path, data_file_path)
    
    # import
    with open(schema_file_path, 'r', encoding='utf-8') as f:
        schema = f.read()
    driver.databases.import_from_file(db_name2, schema, data_file_path)

    Usage examples in Java:

    // export
    Database database = driver.databases().get(dbName);
    database.exportToFile(schemaFilePath, dataFilePath);
    
    // import
    String schema = Files.readString(Path.of(schemaFilePath));
    driver.databases().importFromFile(dbName2, schema, dataFilePath);

Bugs Fixed

  • Handle "Unexpected response type for remote procedure call: Close" on query stream opening
    Fix a rare InternalError returned by mistake when a client sends a query request while the transaction is being closed. Now, an expected "The transaction is closed and no further operation is allowed." error is returned instead.

    Additionally, wait for specific transaction responses in rollback, commit, and query to solidify the protocol and ensure that the server acts as expected.

Code Refactors

Other Improvements

TypeDB Driver 3.4.0-rc0

11 Jun 08:47
3468564

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.4.0-rc0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.4.0rc0

New Features

  • Introduce file-based database export and import
    Introduce interfaces to export databases into schema definition and data files and to import databases using these files. Database import supports files exported from both TypeDB 2.x and TypeDB 3.x.

    Both operations are blocking and may take a significant amount of time to execute for large databases. Use parallel connections to continue operating with the server and its other databases.

    Usage examples in Rust:

    // export
    let db = driver.databases().get(db_name).await.unwrap();
    db.export_to_file(schema_file_path, data_file_path).await.unwrap();
    
    // import
    let schema = read_to_string(schema_file_path).unwrap();
    driver.databases().import_from_file(db_name2, schema, data_file_path).await.unwrap();

    Usage examples in Python:

    # export
    database = driver.databases.get(db_name)
    database.export_to_file(schema_file_path, data_file_path)
    
    # import
    with open(schema_file_path, 'r', encoding='utf-8') as f:
        schema = f.read()
    driver.databases.import_from_file(db_name2, schema, data_file_path)

    Usage examples in Java:

    // export
    Database database = driver.databases().get(dbName);
    database.exportToFile(schemaFilePath, dataFilePath);
    
    // import
    String schema = Files.readString(Path.of(schemaFilePath));
    driver.databases().importFromFile(dbName2, schema, dataFilePath);

Bugs Fixed

  • Handle "Unexpected response type for remote procedure call: Close" on query stream opening
    Fix a rare InternalError returned by mistake when a client sends a query request while the transaction is being closed. Now, an expected "The transaction is closed and no further operation is allowed." error is returned instead.

    Additionally, wait for specific transaction responses in rollback, commit, and query to solidify the protocol and ensure that the server acts as expected.

Code Refactors

Other Improvements

TypeDB Driver 3.2.0

06 May 09:47
b9b8467

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.2.0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.2.0

New Features

  • Introduce transaction and query options
    Introduce transaction options:

    • transaction_timeout: If set, specifies a timeout for killing transactions automatically, preventing memory leaks in unclosed transactions,
    • schema_lock_acquire_timeout: If set, specifies how long the driver should wait if opening a transaction is blocked by an exclusive schema write lock.

    Rust examples:

    let options = TransactionOptions::new().transaction_timeout(Duration::from_secs(10));
    let transaction =
        driver.transaction_with_options(database.name(), TransactionType::Schema, options).await.unwrap();

    Python example:

    options = TransactionOptions(transaction_timeout_millis=10_000)
    tx = driver.transaction(database.name, TransactionType.SCHEMA, options)

    Java example:

    TransactionOptions transactionOptions = new TransactionOptions().transactionTimeoutMillis(10_000);
    Transaction transaction = driver.transaction(database.name(), Transaction.Type.SCHEMA, transactionOptions);

    Introduce query options:

    • include_instance_types: If set, specifies if types should be included in instance structs returned in ConceptRow answers,
    • prefetch_size: If set, specifies the number of extra query responses sent before the client side has to re-request more responses. Increasing this may increase performance for queries with a huge number of answers, as it can reduce the number of network round-trips at the cost of more resources on the server side.

    Rust examples:

    let options = QueryOptions::new().include_instance_types(true);
    let answer = transaction.query_with_options("match $x isa person;", options).await.unwrap();

    Python example:

    options = QueryOptions(include_instance_types=True)
    answer = tx.query("match $x isa person;").resolve()

    Java example:

    QueryOptions queryOptions = new QueryOptions().includeInstanceTypes(true);                
    QueryAnswer matchAnswer = transaction.query("match $x isa person;", queryOptions).resolve();                
  • Introduce Rust driver token-based authentication
    We update the protocol version and introduce token-based authentication for all the available drivers. Now, instead of sending usernames and passwords for authentication purposes, authorization tokens are implicitly added to every network request to a TypeDB server. It enhances the authentication speed and security.

    These tokens are acquired as a result of driver instantiation and are renewed automatically. This feature does not require any user-side changes.

    Additionally, as a part of the HTTP client introduction work, we rename Concept Documents key style from snake_case to camelCase, which is a common convention for JSONs (it affects only value types: value_type -> valueType).

Bugs Fixed

  • Fix incorrect resource ownership transmission in schema retrieval C functions
    Fix a crash caused by an incorrect database's ownership acquisition in the C layer of the schema and type_schema functions, affecting Python and Java drivers.

    Add respective BDD steps implementations for these functions in Rust, Python, and Java.

Code Refactors

Other Improvements

  • Update dependencies
    After a recent update of the crates, rustls added aws-lc-rs as a default dependency. This caused runtime issues during loading of the shared library where the dynamic linker could not find some symbols from aws-lc:

    ImportError: dlopen(.../native_driver_python.so, 0x0002): symbol not found in flat namespace '_aws_lc_0_28_0_EVP_aead_aes_128_gcm'
    

    We decided to force the use of ring as the cryptographic provider for rustls instead.

TypeDB Driver 3.2.0-rc2

28 Apr 11:02
71adee4

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.2.0-rc2</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.2.0rc2

New Features

  • Introduce transaction and query options
    Introduce transaction options:

    • transaction_timeout: If set, specifies a timeout for killing transactions automatically, preventing memory leaks in unclosed transactions,
    • schema_lock_acquire_timeout: If set, specifies how long the driver should wait if opening a transaction is blocked by an exclusive schema write lock.

    Rust examples:

    let options = TransactionOptions::new().transaction_timeout(Duration::from_secs(10));
    let transaction =
        driver.transaction_with_options(database.name(), TransactionType::Schema, options).await.unwrap();

    Python example:

    options = TransactionOptions(transaction_timeout_millis=10_000)
    tx = driver.transaction(database.name, TransactionType.SCHEMA, options)

    Java example:

    TransactionOptions transactionOptions = new TransactionOptions().transactionTimeoutMillis(10_000);
    Transaction transaction = driver.transaction(database.name(), Transaction.Type.SCHEMA, transactionOptions);

    Introduce query options:

    • include_instance_types: If set, specifies if types should be included in instance structs returned in ConceptRow answers,
    • prefetch_size: If set, specifies the number of extra query responses sent before the client side has to re-request more responses. Increasing this may increase performance for queries with a huge number of answers, as it can reduce the number of network round-trips at the cost of more resources on the server side.

    Rust examples:

    let options = QueryOptions::new().include_instance_types(true);
    let answer = transaction.query_with_options("match $x isa person;", options).await.unwrap();

    Python example:

    options = QueryOptions(include_instance_types=True)
    answer = tx.query("match $x isa person;").resolve()

    Java example:

    QueryOptions queryOptions = new QueryOptions().includeInstanceTypes(true);                
    QueryAnswer matchAnswer = transaction.query("match $x isa person;", queryOptions).resolve();                

Bugs Fixed

Code Refactors

Other Improvements

TypeDB Driver 3.2.0-rc0

15 Apr 13:29
a996fc1

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.2.0-rc0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.2.0rc0

New Features

  • Introduce Rust driver token-based authentication
    We update the protocol version and introduce token-based authentication for all the available drivers. Now, instead of sending usernames and passwords for authentication purposes, authorization tokens are implicitly added to every network request to a TypeDB server. It enhances the authentication speed and security.

    These tokens are acquired as a result of driver instantiation and are renewed automatically. This feature does not require any user-side changes.

    Additionally, as a part of the HTTP client introduction work, we rename Concept Documents key style from snake_case to camelCase, which is a common convention for JSONs (it affects only value types: value_type -> valueType).

Bugs Fixed

Code Refactors

Other Improvements

  • Update dependencies
    After a recent update of the crates, rustls added aws-lc-rs as a default dependency. This caused runtime issues during loading of the shared library where the dynamic linker could not find some symbols from aws-lc:

    ImportError: dlopen(.../native_driver_python.so, 0x0002): symbol not found in flat namespace '_aws_lc_0_28_0_EVP_aead_aes_128_gcm'
    

    We decided to force the use of ring as the cryptographic provider for rustls instead.

TypeDB Driver 3.1.0

07 Apr 15:38
e216db8

Choose a tag to compare

Documentation: https://typedb.com/docs/drivers/overview

Distribution

Rust driver

Available from https://crates.io/crates/typedb-driver
Documentation: https://typedb.com/docs/drivers/rust/overview

Java driver

Available through https://repo.typedb.com
Documentation: https://typedb.com/docs/drivers/java/overview

<repositories>
    <repository>
        <id>repo.typedb.com</id>
        <url>https://repo.typedb.com/public/public-release/maven/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupid>com.typedb</groupid>
        <artifactid>typedb-driver</artifactid>
        <version>3.1.0</version>
    </dependency>
</dependencies>

Python driver

PyPI package: https://pypi.org/project/typedb-driver
Documentation: https://typedb.com/docs/drivers/python/overview

Available through https://pypi.org

pip install typedb-driver==3.1.0

New Features

  • Add Python 3.13 release jobs
    TypeDB Driver for Python 3.13 is now officially published.

  • Introduce a single driver creation endpoint for all editions of TypeDB
    Introduce a single driver creation endpoint for all editions of TypeDB: all new_core, new_cloud, TypeDB.core, TypeDB.cloud, and other alternatives in TypeDB drivers now have a single new / driver method that accepts a single string as an address.

    Use it for any edition of TypeDB 3.x (Community Edition, Cloud, Enterprise) the following way (check out README or driver documentation for full usage examples):
    Rust:

    let driver = TypeDBDriver::new(
        TypeDBDriver::DEFAULT_ADDRESS,
        Credentials::new("admin", "password"),
        DriverOptions::new(false, None).unwrap(),
    )
    .await
    .unwrap();

    Python:

    driver = TypeDB.driver(TypeDB.DEFAULT_ADDRESS, Credentials("admin", "password"), DriverOptions())

    Java:

    Driver driver = TypeDB.driver(TypeDB.DEFAULT_ADDRESS, new Credentials("admin", "password"), new DriverOptions(false, null));

    Currently, TypeDB 3.x supports only a single server address, so the list-based method overloading is unnecessary. We plan to preserve the same simplified API after introducing multi-node servers, extending the accepted formats of the input address string instead. Stay tuned for details!

Bugs Fixed

Code Refactors

Other Improvements

  • Fix python example build

  • Update dependencies for the 3.0.1 release
    Update dependencies.

  • RustFmt

  • Clean up Driver field, update core artifact to 3.0.6

  • Fix checkstyle

  • Check in Cargo.toml files

  • Update Rust version to 1.81.0