github fullstorydev/grpcui v1.2.0

latest releases: v1.4.1, v1.5.0, v1.4.0...
2 years ago

Changes

This release includes several fixes and improvements to the web UI and some additional features in the command-line tool.

Web UI

These changes impact usage of both the command-line tool and the Go packages.

  • The UI "Response" tab now renders responses as text areas with formatted JSON. The previous UI attempted to store the response in nested HTML tables, but large and complex response structures induced very poor performance in the browser for laying out and presenting the tables. So the UI is now more responsive. While arguably less aesthetically pleasing, another functional improvement is that it means users can easily copy and paste response messages as JSON.
  • Timestamp fields previously would only accept UTC times (where the time zone offset is "Z") or time zones with negative offsets. Time zones with positive offsets were not accpted. This is fixed: time zones with positive offsets are now supported.
  • When the "Request Timeout" value was a duration that overflows math.MaxInt64 nanoseconds, operations would timeout almost immediately. This was due to the overflow leading to a negative timeout, which was expired immediately upon creation. This has been fixed: on overflow, a value of math.MaxInt64 nanoseconds is used instead (which is nearly 300 years, so will certainly suffice).
  • When responses contained a large amount of data, it was possible for it to be un-renderable, due to an error related to the quota limits of browser local storage. This error caused the processing and rendering of the response to abort. This has been fixed in a variety of ways:
    • Response data is no longer stored in the "history" feature, which is what uses local storage. So encountering a quota limit is much less likely.
    • History is limited to 1mb, and older history entries are purged to keep the total stored value below 1mb. This should further ensure that encountering a quota limit error is highly unlikely.
    • If a quota limit error is encountered, despite the above improvements, it will no longer cause processing of the response to abort. Instead, the error will be logged and the history information will not be updated. This way, the response can still be processed and rendered.

Command-line tool

  • Numerous improvements are included for the parsing of protobuf source files. Most of these issues were cases where grpcui would accept a protobuf source file that could not actually be compiled with protoc. Some were the opposite, where grpcui would fail to parse a source file that protoc would accept and compile. More details can be found in the release notes for the changes to the protoparse library, versions v1.9.0, v1.10.0, and v1.10.1.
  • Protobuf source files may now use the optional keyword, even when a syntax = "proto3" is present. This is a new feature that adds the ability to detect presence of a scalar field, even if it has a default/zero value.
  • Support has been added for a -connect-fail-fast=false command-line flag that causes the server to keep retrying (with backoff between attempts) in the face of what would otherwise be considered permanent failures. For example, errors resolving DNS host names and "connection refused" errors will not cause the program to abort. Instead, the server will keep retrying until a connection is established or until the -connect-timeout has elapsed. This can be useful if grpcui is deployed alongside a server such that the server may not yet be ready and listening on the port when grpcui first tries to connect.

Don't miss a new grpcui release

NewReleases is sending notifications on new releases.