Hello Julia community!
I’m excited to announce the v1.0.0 release of gRPCClient.jl.
Note: As v1.0.0 is a complete rewrite, it is a breaking release and is incompatible with previous versions.
Features
- All four gRPC RPC patterns — unary, server streaming, client streaming, and bidirectional streaming
- Thread-safe — safe for use with
@asyncandThreads.@spawn - Carefully tuned memory management — minimizes allocations and avoids unnecessary copying
- Synchronous and asynchronous interfaces —
grpc_sync_request,grpc_async_request/grpc_async_await - ProtoBuf.jl 1.X integration — generate Julia client stubs directly from
.protofiles
Reliability & Testing
Reliability under load was a major focus of this release. The codebase has been extensively audited and stress tested across all RPC patterns, including long-running workloads designed to surface stability issues and resource leaks. The result is 90% test coverage, with tests covering unary and streaming calls under concurrent load, varying payload sizes, and edge cases like server unavailability and deadline expiry.
A suite of stress workloads and benchmarks is included via gRPCClientUtils.jl for anyone who wants to validate behavior in their own environment.
The package was also audited for potential security / memory safety issues by both myself and Claude and has been through many rounds of hardening at this point.
Links
- GitHub: GitHub - JuliaIO/gRPCClient.jl: A Julia gRPC Client
- Documentation: gRPCClient.jl · gRPCClient.jl
- Release notes: Release v1.0.0 · JuliaIO/gRPCClient.jl · GitHub
A Note on AI Usage
AI assistance was used in a limited capacity during this release — specifically for helping write tests, documentation, this announcement, and finding bugs. No AI-generated code was merged into the main codebase. While we don’t rule out broader use in the future, any AI-assisted contributions will be subject to extensive human review before merging. A stable client that is free of hangs and deadlocks is our #1 priority, and that requires a level of scrutiny that we are not willing to compromise on.
Acknowledgements
- Thanks to the amazing Julia registry folks on Slack for getting me connected to the right people in JuliaIO.
- Tanmay for all the help getting me setup in JuliaIO, upstreaming changes into ProtoBuf.jl, and just generally helping me understand the process to get this across the finish line.
- Medical Metrics Inc. for sponsoring development time spent fixing bugs and performance issues we uncovered during internal testing.
- A big thanks to all contributors — and to everyone who filed issues and tested the library.
- This package builds on aspects of the prior 0.1 version of gRPCClient.jl and Downloads.jl. Without having these packages to reference this would have been a considerably larger undertaking.
Feedback and contributions welcome!