granc/grab/CHANGELOG.md
2026-01-20 18:10:23 +01:00

1.3 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

grab - 0.1.0 - 2026-01-20

Added

  • Dynamic gRPC Client: Implemented a CLI that performs gRPC calls without generating Rust code, bridging JSON payloads to Protobuf binary format at runtime.
  • Schema Loading: Support for loading Protobuf schemas dynamically from binary FileDescriptorSet (.bin or .pb) files.
  • Full Streaming Support: Automatic dispatch for all four gRPC access patterns based on the method descriptor:
    • Unary (Single Request → Single Response)
    • Server Streaming (Single Request → Stream)
    • Client Streaming (Stream → Single Response)
    • Bidirectional Streaming (Stream → Stream)
  • JSON Transcoding: Custom tonic::Codec implementation (JsonCodec) to validate and transcode serde_json::Value to/from Protobuf bytes on the fly.
  • Metadata Support: Ability to attach custom headers/metadata to requests via the -H / --header flag.
  • Input Validation: Fast-fail validation that checks if the provided JSON structure is valid before making the network request.