Skip to content

Releases: typedb/typedb-driver

TypeDB Driver 3.4.4

05 Aug 08:53
ca07f77
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

TypeDB Driver 3.1.0-rc1

21 Mar 16:31
c7d3c7a
Compare
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-rc1</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.0rc1

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

TypeDB Driver 3.0.5

31 Jan 16:41
688b7e2
Compare
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.0.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.0.5

New Features

  • Introduce optional concepts to Concept Rows

    get() and get_index() interfaces of Concept Rows always return optional Concepts (previously, the Java and Python drivers used to return non-optional Concept instances). If the requested variable name or index exists in the column names of a row, but the actual value for this variable is empty, an empty optional value is returned. This is a natural behavior for optionals (coming to TypeDB soon!) and is already useful for queries like (where the variable $empty won't have values):

    match not {$empty isa user;}; insert $u isa user, has username "Hi";
    

    If the requested variable name or index does not exist in the column names of a row, an error is returned.

Bugs Fixed

  • Mark query answer accessors as allocating for SWIG to prevent memory leaks in the Python driver

    We mark query_answer_into_rows and query_answer_into_documents as creating a new allocation that needs to be freed by SWIG. Previously, the iterators extracted from the QueryAnswer would have been ignored by SWIG and not deallocated when the wrapper is freed.

Code Refactors

  • Cleanup driver errors

    Query errors are dissolved in the Java and Python drivers.
    All the arguments passed to the external interfaces are validated to be non-null and of the correct format (e.g., non-negative for concept_row.get_index(column_index)).

Other Improvements

  • Automate README examples updates

    Cloud driver usage examples are added to all the available READMEs. Additionally, these examples are officially available in the repo as separate files.

    The process of README examples updating is automated by unifying all language updates in a single script. A new CI job is introduced to verify that the README examples are up to date.

TypeDB Driver 3.0.4

27 Jan 05:51
70afd19
Compare
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.0.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.0.4

NodeJS driver

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

npm install [email protected]

C# driver

NuGet package: https://www.nuget.org/packages/TypeDB.Driver
Documentation: https://typedb.com/docs/drivers/csharp/overview

<ItemGroup>
    <PackageReference Include="TypeDB.Driver" Version="3.0.4" />
    <PackageReference Include="TypeDB.Driver.Pinvoke.osx-x64" Version="3.0.4" />
    <PackageReference Include="TypeDB.Driver.Pinvoke.linux-x64" Version="3.0.4" />
    <PackageReference Include="TypeDB.Driver.Pinvoke.win-x64" Version="3.0.4" />
    <PackageReference Include="TypeDB.Driver.Pinvoke.osx-arm64" Version="3.0.4" />
    <PackageReference Include="TypeDB.Driver.Pinvoke.linux-arm64" Version="3.0.4" />
</ItemGroup>

C++ driver

Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-cpp+version:3.0.4
Documentation: https://typedb.com/docs/drivers/cpp/overview

C driver

Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-clib+version:3.0.4

Code Refactors

  • Add 'dec' suffix to notation of 'Decimal' type
    Add 'dec' suffix to notation of 'Decimal' type

Other Improvements

  • Update 3.0 drivers api references