Repository navigation
Releases
Releases · browser-grpc/grpc-over-datachannels
v0.38.0
Registry channels: every prior channel moves to 0.38.0, and
the three channels first published at 0.37.1 on 2026-11-05
now publish through release automation at this version —
pub.dev (grpc_dc, kafka_grpc), crates.io (grpc-dc,
kafka-grpc), and RubyGems.org (grpc-dc, kafka-grpc) —
each via its registry's OIDC trusted publishing from the
generated workflows in this repo (no stored tokens). The
public repository is also a SwiftPM package (Package.swift,
library product GrpcDc, module Grpcdc; listing on the
Swift Package Index is filed with this release).
- Swift: the generators never emitted access modifiers (the
runtime was built for single-module compilation), so a
brace-trackingpublicize-swifttransform in the shared
generator code now publicizes the API across the runtime,
protoc stubs, event bus, and HTTP/2 transport. Private
helpers, protocol requirements, explicitinternaltypes,
and multi-line-signature bodies are left alone. - Dart: the runtime gains a
dart:js_interopWebTransport
over anRTCDataChannelbridge (Flutter/Dart web client
and server); the browser Dart examples share it instead of
carrying local copies. Dart stubs now emit thewire.dart
import only when the stub body usesWire.. - Rust: the crates.io
kafka-grpccrate now actually
compiles standalone (its lib re-exports the messages as
crate::pband ships thegrpc_dc::Messageadapter
module). - Release machinery: independent publish-npm steps, the Lua
CI image retries the lua.org download with an apt fallback,
the C# Kafka consumer test moved to its own directory
(sharedobj/collision), andrelease-push.shnow
dispatches all registry workflows including the three new
OIDC ones.
v0.37.1
- C# packaging fix (found by a consumer compile check after
v0.37.0): thegrpcdc.kafka.v1stub types were compiled into
both theGrpcDcandKafkaGrpcassemblies, so any C#
consumer referencingKafkaGrpchit CS0433 type ambiguity.
The kafka stubs now live only inKafkaGrpc
(csharp/kafka/KafkaGrpc.csproj);GrpcDckeeps the runtime
and events stubs. Breaking for anyone who used kafka types
fromGrpcDcdirectly: referenceKafkaGrpcinstead.
v0.37.0
- C# runtime (
GrpcDcNuGet) now multi-targets
netstandard2.0;net8.0via the generators: Unity, .NET
Framework 4.7.2+, Mono, and Xamarin consumers get the
DataChannel core and generated stubs (netstandard-only BCL
compat packages for async/JSON; the raw-TCP HTTP/2 transport
stays net8-only).KafkaGrpcmulti-targets the same way.
net8.0 remains dependency-free. Verified by a maintained
netstandard consumer smoke against the packed nupkg, executed
under Mono in CI. - First canonical kafka-grpc publishes (npmjs, PyPI, NuGet.org,
crates.io, Maven Central) alongside the usual grpc-dc releases.
v0.36.0
- WebRTC-Direct examples for every supported language, generated
byracket/direct-examples-gen.rkt(wired intomake generate): Go and Rust Echo server/clients on the embedded
stacks with direct, TURN (DIRECT_TURN*), and full-ICE
STUN peer modes; serve/dial sidecar examples for Python,
Ruby, PHP, Lua, C, C++, Dart, Java, Kotlin, Scala, Swift,
C#, and Zig.examples/direct/gains a Python server and a
generated compose file (host/go/turn/stun/sidecar profiles
plus a coturn fixture) where a shared/signalvolume is
the whole client→server handoff. Verified end-to-end (all
modes, cross-stack dials, every sidecar language) and in
compose. Also: the Rustdirect_echoexample is gated
behind thewebrtcfeature so plain example builds pass.
v0.35.13
- New generated catalog repo
browser-grpc/examples: an
index over every runnable example in the project (per-language
example trees measured and linked at the release tag, plus
scenario entry points — Echo gallery, event bus, Kafka,
browser starter, VoxelSeed). No copied code, so nothing can
drift; a stdlib link-check CI guards the catalog. Also:
VoxelSeed gained About / How-to-play / Dev-notes pages and a
sitemap on lunchgamer (content depth for AdSense review).
v0.35.12
- New dedicated public repo
browser-grpc/eventbus(parity
withbrowser-grpc/kafka-proxy): a generated subset export
withproto/events.proto, the full Python and JavaScript
trees (broker, clients, demos, tests), generated EventBus
sources for the other fourteen languages undergen/, an
EVENTBUS.mdguide, CI + demo Dockerfiles, and a
ghcr.io/browser-grpc/eventbus-demoimage.release-push.sh
publishes it alongside the main and kafka-proxy repos.
v0.35.11
- Project blog launched at https://c100k.blogspot.com/
(grpc-over-datachannels — gRPC over WebRTC, Browser &
Native): launch series for the runtime, the Kafka proxy,
and the package ecosystem. The generated public README,
org profile, docs landing page, and llms.txt now link it.
v0.35.10
- Releases are now one command:
release-push.shdispatches
and awaits the NuGet and Maven registry workflows and
writes the changelog “published to …” note itself. - Kafka: new e2e leg proves group resume across a proxy
restart (the whole service instance is replaced mid-group;
the new instance resumes exactly at the committed offset),
complementing the existing broker-restart leg. Rust suite
is now 21 tests per broker.
v0.35.9
- Public CI no longer runs 4× per release: both public
workflows trigger on branch pushes and PRs only (release
tags previously re-ran identical trees). - The main public repo gains a browser CI job: Playwright
suites (Chromium/Firefox/WebKit) from the exported
browser-test/harness. This also fixes the exporter
dropping trackedbrowser-testsources (test.mjs,
harness.mjs,fake_turnd.mjs,echo_deep_checks.mjs
missed the old copy pattern), sonpm testin a public
clone runs the full script again.
v0.35.8
publish-mavenroot-caused and fixed: GitHub-built
bundles carried_remote.repositoriesand
maven-metadata-local.xmlfrom the runner's local Maven
repository, which Portal validation rejects; the workflow
now strips them from the bundle zip before upload
(verified VALIDATED on a diagnostic branch).- Kafka e2e: the commit-after-rebalance test re-subscribes
and retries when a member stream dies mid-race under
load, instead of asserting on a fenced commit.