protobuf-net.Connect.AspNetCore
1.0.0
Prefix Reserved
dotnet add package protobuf-net.Connect.AspNetCore --version 1.0.0
NuGet\Install-Package protobuf-net.Connect.AspNetCore -Version 1.0.0
<PackageReference Include="protobuf-net.Connect.AspNetCore" Version="1.0.0" />
<PackageVersion Include="protobuf-net.Connect.AspNetCore" Version="1.0.0" />
<PackageReference Include="protobuf-net.Connect.AspNetCore" />
paket add protobuf-net.Connect.AspNetCore --version 1.0.0
#r "nuget: protobuf-net.Connect.AspNetCore, 1.0.0"
#:package protobuf-net.Connect.AspNetCore@1.0.0
#addin nuget:?package=protobuf-net.Connect.AspNetCore&version=1.0.0
#tool nuget:?package=protobuf-net.Connect.AspNetCore&version=1.0.0
protobuf-net.Connect.AspNetCore
Serves the Connect protocol from ASP.NET Core — the cross-language protocol with implementations for Go, TypeScript, Swift and others, so these endpoints are callable from any of them.
Documentation: connect.protobuf-net.dev
builder.Services.AddMyServices(); // generated from [ProtoConnect]
var app = builder.Build();
app.BindMyServices(); // one endpoint per method
All four method shapes: unary, client-streaming, server-streaming and bidirectional. Binds to
HttpContext and endpoint routing rather than to Kestrel, so Kestrel, HTTP.sys, IIS and TestServer
all work from one implementation.
Each method becomes its own endpoint, so [Authorize], CORS policies, rate limiting and output
caching attach per RPC — ASP.NET Core resolves those from the matched endpoint, in middleware that
runs before any handler. On the code-first path those attributes are carried from your implementation
without reflecting: they are reconstructed at build time and emitted into the binding. (Contract-first
is the exception — there is no generator in that path, so the attributes are passed explicitly; see
the docs.)
Only full-duplex bidirectional streaming needs HTTP/2. Everything else — including half-duplex bidi — works over plaintext HTTP/1.1, because Connect carries trailing metadata in the body rather than in HTTP trailers. That is the operational argument for Connect over gRPC.
A contract-first service needs no generator and no attribute:
builder.Services.AddConnect(o => o.Codecs.Add(MarshallerConnectCodec.Instance));
app.MapConnectService<GreeterImpl>(Greeter.BindService); // protoc's own method group
⚠️ On that path [Authorize] is not inferred — this deliberately does not reflect. Chain
.RequireAuthorization(...) or pass metadata; the analyzer PBN5007 warns if you do neither.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Grpc.Core.Api (>= 2.83.0)
- protobuf-net.Connect (>= 1.0.0)
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 |
|---|---|---|
| 1.0.0 | 133 | 9/16/2026 |
| 0.1.8-alpha | 81 | 9/15/2026 |