Skip to content

Conversation

@lgecse
Copy link
Member

@lgecse lgecse commented Jan 22, 2026

Description

Fixes #1124

Adds C#/.NET SDK for SLIM using uniffi-bindgen-cs to generate bindings from the existing Rust UniFFI definitions.

What's included

  • C# SDK (data-plane/bindings/dotnet/): Idiomatic C# wrapper over auto-generated uniffi bindings

    • Slim - Static entry point for initialization and global service access
    • SlimService - Connection management and app creation
    • SlimApp - Session management, subscriptions, and routing
    • SlimSession - Message publishing and receiving with async support
    • SlimName - Identity parser for org/namespace/app format
    • Full async/await support with CancellationToken
    • Exception handling with SlimException
  • CI/CD Integration:

    • Reusable workflow for .NET build and test (reusable-dotnet-build-and-test.yaml)
    • Integration with release-bindings.yaml for NuGet package publishing
    • Smoke tests that run without a server
  • Multi-platform support: Linux (x64/arm64), macOS (x64/arm64), Windows (x64)

Usage

using Agntcy.Slim;
Slim.Initialize();
var connectionId = await Slim.ConnectAsync("http://localhost:46357");
var service = Slim.GetGlobalService();
var app = service.CreateApp("org", "namespace", "app", "my-32-char-secret-key-here!!!!!");
// ... create sessions, publish/receive messages
Slim.Shutdown();

Related: Go bindings in data-plane/bindings/go/

Type of Change

  • Bugfix
  • New Feature
  • Breaking Change
  • Refactor
  • Documentation
  • Other (please describe)

Checklist

  • I have read the contributing guidelines
  • Existing issues have been referenced (where applicable)
  • I have verified this change is not present in other open pull requests
  • Functionality is documented
  • All code style checks pass
  • New code contribution is covered by automated tests
  • All new and existing tests pass

@github-actions
Copy link
Contributor

github-actions bot commented Jan 22, 2026

The latest Buf updates on your PR. Results from workflow Buf CI / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedFeb 6, 2026, 3:56 PM

@codecov
Copy link

codecov bot commented Jan 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@lgecse lgecse changed the title feat: dotnet bidnings feat: dotnet bindings Jan 22, 2026
@lgecse lgecse force-pushed the feature-dotnet-bindings branch 14 times, most recently from 3fdecc8 to f4cdaf0 Compare January 23, 2026 17:48
@lgecse lgecse marked this pull request as ready for review January 23, 2026 18:48
@lgecse lgecse requested a review from a team as a code owner January 23, 2026 18:48
@lgecse lgecse force-pushed the feature-dotnet-bindings branch 8 times, most recently from 5d78547 to c93ccc1 Compare February 3, 2026 21:46
@lgecse lgecse force-pushed the feature-dotnet-bindings branch 19 times, most recently from 703813f to 6f470b4 Compare February 5, 2026 13:58
@lgecse lgecse force-pushed the feature-dotnet-bindings branch from 08c93ff to c17e59d Compare February 5, 2026 16:59
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 6, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Epic] .NET bindings

2 participants