Skip to content

Commit 460e720

Browse files
MDA2AVclaude
andcommitted
grpc
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c49dee3 commit 460e720

57 files changed

Lines changed: 1881 additions & 31 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

frameworks/aspnet-grpc/Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM mcr.microsoft.com/dotnet/sdk:10.0-preview AS build
2+
WORKDIR /app
3+
COPY . .
4+
RUN dotnet publish -c Release -o out
5+
6+
FROM mcr.microsoft.com/dotnet/aspnet:10.0-preview-alpine
7+
WORKDIR /app
8+
COPY --from=build /app/out .
9+
EXPOSE 8080
10+
ENTRYPOINT ["dotnet", "aspnet-grpc.dll"]

frameworks/aspnet-grpc/Program.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using AspnetGrpc.Services;
2+
using Microsoft.AspNetCore.Server.Kestrel.Core;
3+
4+
var builder = WebApplication.CreateSlimBuilder(args);
5+
builder.Logging.ClearProviders();
6+
builder.Services.AddGrpc();
7+
8+
builder.WebHost.ConfigureKestrel(options =>
9+
{
10+
options.Limits.Http2.MaxStreamsPerConnection = 256;
11+
options.Limits.Http2.InitialConnectionWindowSize = 2 * 1024 * 1024;
12+
options.Limits.Http2.InitialStreamWindowSize = 1024 * 1024;
13+
14+
options.ListenAnyIP(8080, lo =>
15+
{
16+
lo.Protocols = HttpProtocols.Http2;
17+
});
18+
});
19+
20+
var app = builder.Build();
21+
app.MapGrpcService<BenchmarkServiceImpl>();
22+
23+
app.Lifetime.ApplicationStarted.Register(() => Console.WriteLine("Application started."));
24+
app.Run();
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
syntax = "proto3";
2+
3+
package benchmark;
4+
5+
service BenchmarkService {
6+
rpc GetSum (SumRequest) returns (SumReply);
7+
}
8+
9+
message SumRequest {
10+
int32 a = 1;
11+
int32 b = 2;
12+
}
13+
14+
message SumReply {
15+
int32 result = 1;
16+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Benchmark;
2+
using Grpc.Core;
3+
4+
namespace AspnetGrpc.Services;
5+
6+
public class BenchmarkServiceImpl : BenchmarkService.BenchmarkServiceBase
7+
{
8+
public override Task<SumReply> GetSum(SumRequest request, ServerCallContext context)
9+
{
10+
return Task.FromResult(new SumReply { Result = request.A + request.B });
11+
}
12+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net10.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<InvariantGlobalization>true</InvariantGlobalization>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<Protobuf Include="Protos/benchmark.proto" GrpcServices="Server" />
11+
</ItemGroup>
12+
13+
<ItemGroup>
14+
<PackageReference Include="Grpc.AspNetCore" Version="2.71.0" />
15+
</ItemGroup>
16+
17+
</Project>

frameworks/aspnet-grpc/meta.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"display_name": "aspnet-grpc",
3+
"language": "C#",
4+
"type": "framework",
5+
"engine": "Kestrel",
6+
"description": "ASP.NET Core gRPC server using .NET 10 preview with Kestrel.",
7+
"repo": "https://github.com/dotnet/aspnetcore",
8+
"enabled": true,
9+
"tests": [
10+
"baseline-grpc"
11+
]
12+
}

frameworks/grpc-go/Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM golang:1.24-bookworm AS build
2+
WORKDIR /app
3+
COPY . .
4+
RUN go mod tidy
5+
RUN CGO_ENABLED=0 go build -o server main.go
6+
7+
FROM debian:bookworm-slim
8+
COPY --from=build /app/server /server
9+
EXPOSE 8080
10+
CMD ["/server"]

frameworks/grpc-go/go.mod

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module grpc-go
2+
3+
go 1.24
4+
5+
require (
6+
google.golang.org/grpc v1.72.0
7+
google.golang.org/protobuf v1.36.6
8+
)
9+
10+
require (
11+
golang.org/x/net v0.35.0 // indirect
12+
golang.org/x/sys v0.30.0 // indirect
13+
golang.org/x/text v0.22.0 // indirect
14+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
15+
)

frameworks/grpc-go/go.sum

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
2+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
3+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
4+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
5+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
6+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
7+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
8+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
9+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
10+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
11+
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
12+
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
13+
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
14+
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
15+
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
16+
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
17+
go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
18+
go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
19+
go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk=
20+
go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w=
21+
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
22+
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
23+
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
24+
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
25+
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
26+
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
27+
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
28+
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
29+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
30+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a/go.mod h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
31+
google.golang.org/grpc v1.72.0 h1:S7UkcVa60b5AAQTaO6ZKamFp1zMZSU0fGDK2WZLbBnM=
32+
google.golang.org/grpc v1.72.0/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM=
33+
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
34+
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=

0 commit comments

Comments
 (0)