CSharpTestBedAdapter 1.5.2019.1029

.NET Framework 4.6
There is a newer version of this package available.
See the version list below for details.
NuGet\Install-Package CSharpTestBedAdapter -Version 1.5.2019.1029
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
dotnet add package CSharpTestBedAdapter --version 1.5.2019.1029
<PackageReference Include="CSharpTestBedAdapter" Version="1.5.2019.1029" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CSharpTestBedAdapter --version 1.5.2019.1029
#r "nuget: CSharpTestBedAdapter, 1.5.2019.1029"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install CSharpTestBedAdapter as a Cake Addin
#addin nuget:?package=CSharpTestBedAdapter&version=1.5.2019.1029

// Install CSharpTestBedAdapter as a Cake Tool
#tool nuget:?package=CSharpTestBedAdapter&version=1.5.2019.1029


This is the C# Apache Kafka adapter created for the DRIVER-EU test-bed. This allows C# written programs to communicate over the test-bed.

The implementation is a wrapper around Confluent's .NET Client for Apache Kafka<sup>TM</sup> with the additional NuGet package to support Avro serialization (Confluent.Kafka.Avro (version 0.11.6)), and offers support for:

  • Sending and receiving Avro schema's and messages: both producer and consumer use Avro schema's for their message key and value. Methods for sending and receiving standard or custom messages are SendMessage & AddCallback
  • Logging via Kafka: your application can log on several log levels (eg. error, debug, info) onto a specific test-bed topic. Methods for sending and receiving log messages are Log & AddLogCallback
  • Receive time information: the adapter is connected to the test-bed time service, allowing you to receive relevant time-related information like fictive trial time, or the speed of the trial. Method for retrieving the time information is GetTimeInfo
  • Uploading large data: the adapter is connected to the test-bed large data service, allowing you to upload large data files for sharing with other applications connected to the test-bed. Methods for uploading large data are GetLargeFileServiceClient & Upload
  • Setup a SSL connection with a test-bed including security features Setup is completely done in the CSharpTestBedAdapter-settings.xml
  • Internal Management: the adapter makes the coupling between application and test-bed as easy as possible.


  • All projects are build on the .NET Framework 4.6
  • All projects are dependent on one NuGet package from Confluent:

In order to use the csharp-test-bed-adapter, you are also required to download and install the above-mentioned NuGet package.


The C# test-bed adapter is available as Nuget package. You can also manually build CSharpTestBedAdapter and include the compiled DLLs CSharpTestBedAdapter.dll, CoreMessages.dll & StandardMessages.dll into your own application.

Next to the compiled CSharpTestBedAdapter.dll, there is a CSharpTestBedAdapter-settings.xml, where you can change the following adapter settings:

  • client.id: the name of the application that uses this adapter
  • heartbeat.interval: the time (in ms) between sending a heartbeat
  • security.protocol: the security protocol this adapter is using (PLAINTEXT or SSL)
  • security.ca.path: the path of the issuer certificate :: only needed when security.protocol = SSL
  • security.keystore.path: the path of the PKCS#12 keystore (client keypair + certificate) for client authentication :: only needed when security.protocol = SSL
  • security.keystore.password: the password for the PKCS#12 keystore :: only needed when security.protocol = SSL
  • broker.url: the URL of the Kafka broker to connect to
  • schema.url: the URL of the schema registry service to use
  • send.sync: indication if the adapter needs to stall the application thread until the message is sent
  • retry.count: number of retries before timing out when sending messages
  • retry.time: amount of time (in ms) before timing out when sending messages
  • direct.connect: indication if this adapter is allowed to send and receive messages without waiting for the admin tool

See the 3 example projects for further implementation of this adapter.

Product Versions
.NET Framework net46 net461 net462 net463 net47 net471 net472 net48
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.2020.323 3,000 3/23/2020
2.0.2020.310 482 3/9/2020
1.8.2020.121 432 1/21/2020
1.7.2020.115 461 1/15/2020
1.6.2019.1224 428 12/23/2019
1.6.2019.1223 409 12/23/2019
1.5.2019.1029 391 10/29/2019
1.4.2019.603 572 6/3/2019
1.4.2019.204 567 2/4/2019
1.3.1217 721 12/17/2018
1.3.1122 649 12/10/2018

Final release, including clean-up and resolving all open issues (except transfer to Confluent Kafka Client 1.0)