Skip to content

[All] [.NET] Add .NET SDK support #533

Description

@nalyd2

SDK

All

Description

Add a .NET SDK (dotnet/) as a new wrapper language for the Zerobus Ingest SDK, providing high-throughput streaming ingestion into Databricks Delta tables for .NET applications.

Proposed Solution

A thin P/Invoke wrapper around the existing rust/ffi/ C ABI, following the same patterns as the Java SDK:

  • Native interop: P/Invoke declarations, C struct marshaling, SafeHandle subclasses, cross-platform native library resolver
  • Fluent builder API: StreamBuilder with typed sub-builders (.Json(), .CompiledProto(), .Arrow())
  • Stream types: ZerobusJsonStream, ZerobusProtoStream<T>, ZerobusArrowStream (Beta) — all thread-safe
  • Configuration: Builder pattern matching Java's StreamConfigurationOptions
  • CI/CD: GitHub Actions workflows integrated into push.yml + release-dotnet.yml
  • NuGet packaging: Multi-platform native libs bundled via runtimes/{rid}/native/
  • Testing: 51 tests (30 unit + 21 integration with gRPC mock server)

The .NET SDK uses the same zerobus_ffi that Go and C++ consume — no new FFI crate required.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions