Documentation: https://typedb.com/docs/drivers/overview
Available from https://crates.io/crates/typedb-driver Documentation: https://typedb.com/docs/drivers/rust/overview
cargo add [email protected]
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.vaticle.typedb</groupid>
<artifactid>typedb-driver</artifactid>
<version>2.28.0-rc0</version>
</dependency>
</dependencies>
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==2.28.0rc0
NPM package: https://www.npmjs.com/package/typedb-driver Documentation: https://typedb.com/docs/drivers/nodejs/overview
npm install [email protected]
NuGet package: Coming soon Documentation: Coming soon
<ItemGroup>
<PackageReference Include="TypeDB.Driver" Version="2.28.0-rc0" />
<PackageReference Include="TypeDB.Driver.Pinvoke.osx-x64" Version="2.28.0-rc0" />
<PackageReference Include="TypeDB.Driver.Pinvoke.linux-x64" Version="2.28.0-rc0" />
<PackageReference Include="TypeDB.Driver.Pinvoke.win-x64" Version="2.28.0-rc0" />
<PackageReference Include="TypeDB.Driver.Pinvoke.osx-arm64" Version="2.28.0-rc0" />
<PackageReference Include="TypeDB.Driver.Pinvoke.linux-arm64" Version="2.28.0-rc0" />
</ItemGroup>
Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-cpp+version:2.28.0-rc0 Documentation: https://typedb.com/docs/drivers/cpp/overview
Compiled distributions comprising headers and shared libraries available at: https://cloudsmith.io/~typedb/repos/public-release/packages/?q=name:^typedb-driver-clib+version:2.28.0-rc0
-
Address translation
We allow the user to provide a translation map from the advertised server addresses (now treated as generic server names) to the actual addresses the driver shall use to connect to the cloud instances. We require the user to provide the full mapping.
Example usage:
Python:
with TypeDB.cloud_driver({ "0.deployment-UUID.cloud.typedb.com:1729": "localhost:11729", "1.deployment-UUID.cloud.typedb.com:1729": "localhost:21729", "2.deployment-UUID.cloud.typedb.com:1729": "localhost:31729" }, credential) as driver: pass
Rust:
Connection::new_cloud_with_translation( [ ("0.deployment-UUID.cloud.typedb.com:1729", "localhost:11729"), ("1.deployment-UUID.cloud.typedb.com:1729", "localhost:21729"), ("2.deployment-UUID.cloud.typedb.com:1729", "localhost:31729"), ].into(), credential )
-
Introduce packaging, distribution and documentation for the C# driver
We introduce packaging, distribution and documentation C# driver for TypeDB (the original driver PR). It is built using the cross-platform .NET 6 framework.
The driver is distributed as a series of Nuget packages. To use the driver, import the latest versions of the driver (TypeDB.Driver) and its Pinvoke runtime (TypeDB.Driver.Pinvoke) suitable for your platform.
CS project: Here is an example from a
.csproj
for MacOS x86-64:<PackageReference Include="TypeDB.Driver" Version={VERSION} /> <PackageReference Include="TypeDB.Driver.Pinvoke.osx-x64" Version={VERSION} />
If you aim to build a platform-independent package, reference all the needed runtimes (it will affect the size of your application by downloading a respective set of platform-specific dynamic libraries):
<PackageReference Include="TypeDB.Driver.Pinvoke.osx-x64" Version={VERSION} /> <PackageReference Include="TypeDB.Driver.Pinvoke.linux-x64" Version={VERSION} /> <PackageReference Include="TypeDB.Driver.Pinvoke.win-x64" Version={VERSION} /> <PackageReference Include="TypeDB.Driver.Pinvoke.osx-arm64" Version={VERSION} /> ...
Bazel:
- Import both the
TypeDB.Driver
andTypeDB.Driver.Pinvoke
nuget packages as dependencies to your build rule. - For development, you can also use a csharp bazel rule, passing targets
//csharp:driver-csharp
(the driver itself),//csharp/Api:api
(exposed Api namespace),//csharp/Common:common
(exposed Common namespace) as dependencies.
A simple usage example (see
csharp/Test/Integration/Examples
for more):using TypeDB.Driver.Api; using TypeDB.Driver.Common; public class TypeDBExample { public void SetupTypeDB() { string dbName = "access-management-db"; string serverAddr = "127.0.0.1:1729"; try { using (ITypeDBDriver driver = Drivers.CoreDriver(serverAddr)) { driver.Databases.Create(dbName); IDatabase database = driver.Databases.Get(dbName); using (ITypeDBSession session = driver.Session(dbName, SessionType.Schema)) { using (ITypeDBTransaction transaction = session.Transaction(TransactionType.Write)) { transaction.Query.Define("define person sub entity;").Resolve(); string longQuery = "define name sub attribute, value string; person owns name;"; transaction.Query.Define(longQuery).Resolve(); transaction.Commit(); } } database.Delete(); } } catch (TypeDBDriverException e) { Console.WriteLine($"Caught TypeDB Driver Exception: {e}"); } } }
- Import both the
-
Introduce C# driver without documentation and deployment
We introduce the C# driver for TypeDB. It is built using the cross-platform .NET 6 framework.
Usage: Deployment and usage examples will be provided in a separate pull request. Current state of the code lets you compiling the driver + writing and running behaviour and integration tests for it. The driver is expected to be a Nuget package, which could be added as a dependency to a project and referenced via "using" statements inside the users' code for all platforms.
Architecture: The C# driver is a thin wrapper around the TypeDB Rust driver, introducing classes for a more intuitive interface. Mostly each C# object holds a reference to the corresponding native Rust object, using an FFI (SWIG for C#) for the native object wrappers generation and resource management.
Any error encountered will throw a
TypeDBDriverException
. Note that methods which return anIEnumerable
or a Promise and encounter a server-side error will only throw when the return objects are evaluated (e.g. iterate over or call aLinq
method for anIEnumerable
and callResolve()
for aPromise
).A simple usage example:
// Inside a try-catch block using (ITypeDBDriver driver = TypeDB.CoreDriver(TypeDB.DEFAULT_ADDRESS)) { string dbName = "mydb"; driver.Databases.Create(dbName); IDatabase mydb = driver.Databases.Get(dbName); System.Console.WriteLine(mydb.Name); using (ITypeDBSession schemaSession = driver.Session(dbName, SessionType.SCHEMA)) { using (ITypeDBTransaction writeTransaction = schemaSession.Transaction(TransactionType.WRITE)) { string defineQuery = "...some define query..."; writeTransaction.Query.Define(defineQuery).Resolve(); writeTransaction.Commit(); } } mydb.Delete(); }
-
Update Git patch during Windows Circle CI initial job setup
We update the Windows Circle CI git patch file to be compatible with the WORKSPACE file which has been recently updated. We also add a check of whether the git patch was successfully applied to catch such mistakes early in the future.
-
Fix deadsnakes ppa in Circle CI sync-dependencies release job
Add
-y
to theadd-apt-repository
command in the Circle CI sync-dependencies release job.
-
Implement new steps for getting answers from templated get
We implement a new steps in every driver for a new step: 'get answers of templated typeql get', which is a modification of the existing 'templated typeql get; throws exception'
-
Remove copyright year from apache license headers
To simplify maintanance, we remove the copyright year from the Apache license headers. These aren't (to our best knowledge) actually legally required, since copyright is granted automatically from the moment a work is created (US law).
-
Fix parsing & formatting issues for C, C++ documentation Fixes the automatic documentation generation tools for the C & C++ drivers (1) to be consistent with other languages in terms of structure, and (2) removes stray duplication of parameter documentation in method descriptions.
-
Add README for the C# driver with examples This PR adds
README
with usage examples for the incoming release of the C# driver. -
Update C docs reference in README.md
-
Added C# to README.md
-
Add setSupertype docs to nodejs thing types
We add missing documentation for the
setSupertype
concept API in the NodeJS Driver. -
Merge master to development after 2.27.0 release We merge back changes made during the release process for 2.27.0, including changes to test infrastructure to explicitly disable monitoring (for port clashes) and diagnostics (to avoid spurious error reports).