The GitHub Actions job "Validate and test" on pekko-grpc.git/main has succeeded.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
6c8dc2baf9d9c689c92e8d907e8af9489134e856 / PJ Fanning 
<[email protected]>
Encode response data frames through GrpcProtocolWriter with deferred writes 
(#909)

* Generalise unary response optimisation.

Encapsulate optimisation of unary responses into a 
GrpcProtocol/GrpcProtocolWriter concern, allowing it to be applied to other 
variants.
This removes the need for the frame encoder, as this is just a map with 
encodeFrame.

* Keep the frame serializer types internal.

Motivation:
The deferred data frame change made ProtobufFrameSerializer a public
@ApiMayChange trait, which would expose the internal DeferredDataWriter
to anyone extending the public serializers.

Modification:
- Keep ProtobufFrameSerializer private[grpc], as it is on main.
- Make DeferredDataWriter's methods, and the ScalaPB and Google
  serializers' implementations of them, private[grpc].
- Add the MiMa filters for the Scala 3 positional accessors of
  GrpcProtocolReader and GrpcProtocolWriter, and rename the filter file
  after the change.
- Remove debug println output from the serializer specs.

Result:
No new public API. Binary compatibility passes on Scala 2.13 and 3.

Tests:
- sbt runtime/test: 180 passed
- sbt +runtime/mimaReportBinaryIssues: passed

References:
Refs #905

* Add a benchmark for encoding response data frames.

Motivation:
The deferred data frame change affects how response messages are
written into gRPC frames, but no benchmark covered gRPC-Web responses.

Modification:
Add FrameWriteBenchmark, which marshals unary and streamed responses
for the native and gRPC-Web protocols without compression, with 16 B,
1 KiB and 64 KiB bytes payloads.

Result:
Frame encoding can be compared with main.

Tests:
- sbt benchmarks/Jmh/compile: passed

References:
Refs #905

* Fix FrameWriteBenchmark formatting and Scala 3.9 warnings.

Replace the deprecated = _ initializers, which fail the next build under
-Werror, and apply scalafmt.

* Use the pekko import prefix for DeferredDataFrame imports.

* Fix the frane parameter name typo in GrpcProtocolWeb.

* Use OutboundFrame in GrpcProtocolWeb encodeFrame and encodeFrameToBytes, 
matching GrpcProtocolNative.

---------

Co-authored-by: Tim Whittington <[email protected]>
Co-authored-by: PJ Fanning <[email protected]>

Report URL: https://github.com/apache/pekko-grpc/actions/runs/39456420373

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to