granc/CHANGELOG.md
github-actions[bot] 57381ca520
chore: release (#31)
---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JasterV <49537445+JasterV@users.noreply.github.com>
2026-01-27 15:09:57 +01:00

5.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]

granc_core - 0.5.0 - 2026-01-27

  • Typestate design refactor: The GrancClient has been refactored to support multiple states where invariants for each state are ensured by the compiler. (#28)
    • The GrancClient can be in either a WithServerReflection state or a WithFileDescriptor state, and both states have independent APIs (Async vs sync).

granc - 0.5.1 - 2026-01-24

Other

  • Update deps: Update granc_core to 0.4.1

granc_core - 0.4.1 - 2026-01-27

Other

  • Internal clean up: We've replaced our own script that generated the Reflection client to use tonic-reflection instead. (#29)

granc - 0.5.0 - 2026-01-24

Added

  • Introspection Commands:
    • list: Lists all services available on the server (requires reflection).
    • describe: Lists all methods within a specific service, prints the Protobuf definition of a message type or show all the variants of an enum.
  • Formatted Output: Added colored output for Protobuf definitions, JSON responses, and error messages.

Changed

  • [BREAKING] New CLI Structure: The CLI now enforces a granc <URL> <COMMAND> structure.
    • Previous implicit calls are now explicit: granc http://... call <ENDPOINT> ....
    • The URL is now a global positional argument required for all commands.

granc_core - 0.4.0 - 2026-01-24

Added

  • Introspection APIs: Added list_services and get_descriptor_by_symbol to GrancClient.
  • Reflection Support: Updated ReflectionClient to support the ListServices reflection method.

Changed

  • Error Handling Refactor: Overhauled error types to be more specific per method (GetDescriptoError, ListServicesError) and reduced internal duplication.

granc - 0.4.0 - 2026-01-22

  • Made a mistake publishing granc 0.3 and introduced bugs, granc 0.4 fixes them and its the first working version after 0.2.4.

granc_core - 0.3.1 - 2026-01-22

Other

  • Update granc-core documentation

granc_core - 0.3.0 - 2026-01-22

  • Fix: separate reflection generation binary to not be published (#20)

granc - 0.2.4 - 2026-01-22

  • Published granc-core as a library crate granc-core (#16)

granc_core - 0.2.4 - 2026-01-22

  • Published granc-core as a library crate granc-core (#16)

granc - 0.2.3 - 2026-01-21

  • Internal refactor: Decouple ReflectionClient to possibly publish in a separate crate

granc - 0.2.2 - 2026-01-21

  • Updated README.md

granc - 0.2.1 - 2026-01-21

  • Updated README

granc - 0.2.0 - 2026-01-21

Added

  • Automatic Reflection: The tool now supports automatic reflection, trying to reach the reflection service in the server if the user doesn't provide a file descriptor binary (#9)

granc - 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.