Skip to content

connect-kotlin-server

Serve the Connect protocol and gRPC-Web natively on the JVM — directly on top of your grpc-java services. No proxy, no Spring lock-in.

Native Connect & gRPC-Web

Serve the Connect protocol, gRPC-Web, and Connect streaming directly from your JVM—no sidecar proxy required.

Zero Framework Lock-in

The core library has no dependency on Spring or the Servlet API. Use it standalone or with Spring Boot.

Proto & JSON Codecs

Protobuf binary and Protobuf-JSON encoding out of the box, with gzip compression and permissive CORS.

Server-Streaming & Chunked Transfer

Full server-streaming support delivered via chunked HTTP/1.1 transfer—requests run on virtual threads.

In-Process gRPC Channel

Your io.grpc.BindableService implementations run directly in the same JVM process via an embedded Netty server.

Connect Error Model

Full Connect error JSON (code / message / details), gRPC-Web trailers, and end-of-stream semantics.

connect-kotlin provides a client, but the JVM has no native server-side Connect implementation. The standard workaround is to run a separate Go proxy (like Vanguard) in front of your gRPC backend to transcode protocols—adding a network hop and operational complexity.

connect-kotlin-server removes that hop entirely. It hosts your io.grpc.BindableServices on an in-process gRPC channel and serves them over Connect, Connect streaming, and gRPC-Web through an embedded Netty server (HTTP/1.1, with optional HTTP/2 cleartext and an optional native gRPC port)—all in the same JVM, with no proxy.

[!WARNING] Alpha. This project is in early, active development. The public API, wire behaviour and module layout may change without notice between releases. Pin an exact version and review the release notes before upgrading.