[ANN] gRPCClient.jl v1.0.0 — Production-grade gRPC client for Julia

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 @async and Threads.@spawn
  • Carefully tuned memory management — minimizes allocations and avoids unnecessary copying
  • Synchronous and asynchronous interfacesgrpc_sync_request, grpc_async_request / grpc_async_await
  • ProtoBuf.jl 1.X integration — generate Julia client stubs directly from .proto files

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

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!

1 Like