Releases: igor-vovk/connect-rpc-scala
v0.4.1
What's Changed
- Deprecate old builder classes in favor of new implementations by @igor-vovk in #179
- Speedup conformance tests execution by moving the build step to the host machine by @igor-vovk in #180
- Refactor Makefile to improve readability of conformance test commands by @igor-vovk in #181
- Update netty-all to 4.2.3.Final by @scala-steward in #182
- Add architecture diagram & remove dependencies that are already transitive by @igor-vovk in #183
- Update README to clarify use cases and architecture by @igor-vovk in #184
- Update zio to 2.1.20 by @scala-steward in #185
- Add support for additional custom routes in ConnectHttp4sRouteBuilder by @igor-vovk in #187
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's new
🎉🎉🎉 Version 0.4.0 introduces a ConnectRPC protocol client, meaning that now not only you can serve ConnectRPC endpoints from Scala services, but also call other services using ConnectRPC protocol. And to the extent that all gRPC communication can be now fully switched to ConnectRPC! http4s client and server reaches full 100% protocol conformance status when used JSON as a codec (the default behavior).
This change unblocks creating some benchmarks in the future and comparing the performance with pure gRPC.
Also there is a new folder with examples showing:
- How to setup client-server communication for both cats-effect and ZIO
- How ConnectRPC server can be used alongside with gRPC server together in a single service
Deprecations:
Http4sRouteBuilder
was renamed toConnectHttp4sRouteBuilder
. Old class is still available, but will marked as deprecated and removed in the future. The same forNettyServerBuilder
->ConnectNettyServerBuilder
change.
What's Changed
- Generalize serialization and deserialization of proto messages for co… by @igor-vovk in #144
- Update sbt, scripted-plugin to 1.11.0 by @scala-steward in #148
- Remove logback-classic dependency in publishable modules and use slf4j-api instead by @igor-vovk in #149
- Update sbt-ci-release plugin to version 1.11.0 by @igor-vovk in #150
- Update grpc-core, grpc-inprocess, ... to 1.73.0 by @scala-steward in #151
- Update scalafmt-core to 3.9.7 by @scala-steward in #152
- Implement Http4s Connect client by @igor-vovk in #146
- Update sbt, scripted-plugin to 1.11.1 by @scala-steward in #154
- Update sbt-ci-release to 1.11.1 by @scala-steward in #153
- Enhance README with http4s client and server setup instructions; remo… by @igor-vovk in #155
- Update README to improve client feature comparison by @igor-vovk in #156
- Fix README to correct ConnectRPC channel builder name by @igor-vovk in #157
- Remove header filters from ConnectHttp4sChannelBuilder by @igor-vovk in #158
- Enable Protobuf support in conformance tests and update README by @igor-vovk in #159
- Update Dockerfile to use conformance Docker image by @igor-vovk in #160
- Update Java version to 24 in CI configurations and refactor response … by @igor-vovk in #161
- Update netty-all to 4.2.2.Final by @scala-steward in #162
- Fix for code scanning alert: Workflow does not contain permissions by @igor-vovk in #163
- Add read permissions for contents in CI workflows by @igor-vovk in #164
- Update compilerplugin, scalapb-runtime, ... to 0.11.18 by @scala-steward in #166
- Update sbt-protoc to 1.0.8 by @scala-steward in #165
- Update scalapb-json4s to 0.12.2 by @scala-steward in #167
- Update fs2-grpc-runtime, sbt-fs2-grpc to 2.8.1 by @scala-steward in #169
- Update sbt, scripted-plugin to 1.11.2 by @scala-steward in #168
- Rename length-prefixed serde classes, add link to Cedi library by @igor-vovk in #172
- Refactor conformance test execution to use Makefile and profiles by @igor-vovk in #173
- Update compilerplugin, scalapb-runtime, ... to 0.11.19 by @scala-steward in #170
- Update fs2-grpc-runtime, sbt-fs2-grpc to 2.8.2 by @scala-steward in #171
- Update scalafmt-core to 3.9.8 by @scala-steward in #174
- Update sbt-scalafmt to 2.5.5 by @scala-steward in #175
- Update sbt, scripted-plugin to 1.11.3 by @scala-steward in #176
- Add examples, fix warning re passing a Connection header from client to server by @igor-vovk in #177
- Add ZIO client-server example by @igor-vovk in #178
Full Changelog: v0.3.1...v0.4.0
v0.4.0-rc.1
What's new
v0.4.0 introduces a new Connect-compatible client, which means from now GRPC communication between Scala services can be switched to Connect protocol. Http4s frontend now includes both Connect client and server, and those can be used together. More details in README.
Client also has 100% conformance status when used with JSON codec (the default behavior).
Having Connect-compatible client in addition to the server also unblocks future performance comparison between GRPC and Connect w/ http4s and Netty frontends and comparing performance of JSON vs Protobuf (#96).
What's Changed
- Generalize serialization and deserialization of proto messages for co… by @igor-vovk in #144
- Update sbt, scripted-plugin to 1.11.0 by @scala-steward in #148
- Remove logback-classic dependency in publishable modules and use slf4j-api instead by @igor-vovk in #149
- Update sbt-ci-release plugin to version 1.11.0 by @igor-vovk in #150
- Update grpc-core, grpc-inprocess, ... to 1.73.0 by @scala-steward in #151
- Update scalafmt-core to 3.9.7 by @scala-steward in #152
- Implement Http4s Connect client by @igor-vovk in #146
- Update sbt, scripted-plugin to 1.11.1 by @scala-steward in #154
- Update sbt-ci-release to 1.11.1 by @scala-steward in #153
- Enhance README with http4s client and server setup instructions; remo… by @igor-vovk in #155
- Update README to improve client feature comparison by @igor-vovk in #156
Full Changelog: v0.3.1...v0.4.0-rc.1
v0.3.1
What's Changed
- [netty] Support configurable path prefixes by @igor-vovk in #115
- [transcoding] Move UrlMatcher to core module, change api to match on … by @igor-vovk in #116
- [http4s] Get rid of http4s-dsl dependency, make the code of netty and… by @igor-vovk in #117
- Update sbt-ci-release to 1.9.3 by @scala-steward in #127
- Update sbt, scripted-plugin to 1.10.11 by @scala-steward in #129
- Update fs2-grpc-runtime, sbt-fs2-grpc to 2.8.0 by @scala-steward in #133
- Update grpc-core, grpc-inprocess, ... to 1.72.0 by @scala-steward in #134
- Update logback-classic to 1.5.18 by @scala-steward in #130
- Update scalafmt-core to 3.9.5 by @scala-steward in #136
- Update netty-all to 4.2.1.Final by @scala-steward in #138
- Update scalafmt-core to 3.9.6 by @scala-steward in #139
- Refactor gRPC status handling and improve header mapping in HTTP inte… by @igor-vovk in #141
- Update scala3-library to 3.3.6 by @igor-vovk in #142
- Add links to Connect RPC resources in README by @igor-vovk in #143
Full Changelog: v0.3.0...v0.3.1
v0.3.0
🎉 Initial (alpha) Netty web-server support
Breaking changes:
- switch from
connect-rpc-scala-core
toconnect-rpc-scala-http4s
dependency to continue using http4s frontend org.ivovk.connect_rpc_scala.ConnectRouteBuilder
needs to be renamed toorg.ivovk.connect_rpc_scala.http4s.Http4sRouteBuilder
classHttp4sRouteBuilder.buildRoutes
method now returnsRoutes
case class, allowing to choose whether to useconnect
/transcoding
protocols routes, orall
routes combined.
Everything else should work the same.
What is supported and whatnot by Netty at the current moment, can be read in the README: https://github.com/igor-vovk/connect-rpc-scala
What's Changed
- [netty] Initial Netty support by @igor-vovk in #107
- [netty] Fix writing to the closed channel by @igor-vovk in #109
- [http4s] Expose routes object to be able to choose between connect an… by @igor-vovk in #110
- Generalize media type parsing by @igor-vovk in #111
- Document feature matrix for both frontends by @igor-vovk in #112
- [netty] Fix proto parsing, improve dealing with netty futures, slight… by @igor-vovk in #114
Library updates
- Update grpc-core, grpc-inprocess, ... to 1.70.0 by @scala-steward in #102
- Update scalafmt-core to 3.8.6 by @scala-steward in #103
- Update scala3-library to 3.3.5 by @scala-steward in #105
- Update sbt-native-packager to 1.11.1 by @scala-steward in #108
Full Changelog: v0.2.8...v0.3.0
v0.2.8
Performance optimizations and cleaning some stuff.
What's Changed
- Document how to add CORS support by @igor-vovk in #89
- Update sbt-native-packager to 1.11.0 by @scala-steward in #92
- Update logback-classic to 1.5.16 by @scala-steward in #91
- Rely on a call stack instead of reversing a list in MergingBuilder by @igor-vovk in #93
- Use CodedOutputStream to directly write to an array by @igor-vovk in #94
- one-pass implementation of writing in MergingBuilder by @igor-vovk in #95
- Formatting with scalafmt by @igor-vovk in #97
- [transcoding] Do not instantiate Iterator during tree traversal by @igor-vovk in #98
- Run dependabot on Fridays, format sbt files by @igor-vovk in #99
- Move conformance build-related files into a subfolder by @igor-vovk in #100
Full Changelog: v0.2.7...v0.2.8
v0.2.7
This release changes the organization from io.github.igor-vovk
to me.ivovk
. Further releases will be published under the new organization
What's Changed
- Change publish organization to me.ivovk by @igor-vovk in #86
- Move default header filters to FilterMapping class by @igor-vovk in #81
- Extract otel and zio docs into separate pages by @igor-vovk in #82
- Document Kubernetes health checks support by @igor-vovk in #83
Full Changelog: v0.2.5...v0.2.7
v0.2.5
What's Changed
- Cache metadata keys in a weak cache by @igor-vovk in #80
- Scala syntax for working with GRPC Metadata by @igor-vovk in #79
- Rename user-agent header to x-user-agent, since original one gets overridden (more) by @igor-vovk in #78
- Update license by @igor-vovk in #71
- Update dependency graph based on sbt dependencies by @igor-vovk in #74
Dependency updates
- Update sbt-ci-release to 1.9.2 by @scala-steward in #73
- Update sbt, scripted-plugin to 1.10.7 by @scala-steward in #77
- Update logback-classic to 1.5.15 by @scala-steward in #76
Full Changelog: v0.2.4...v0.2.5
v0.2.3
What's Changed
- Extract connect and transcoding routes into separate classes by @igor-vovk in #64
- [transcoding] Support request body field mapping by @igor-vovk in #65
- Work on the documentation, code renamings / alignment by @igor-vovk in #66
- Add notes about production readiness / performance by @igor-vovk in #67
- Extract Connect error handler by @igor-vovk in #68
- Support setting custom transcoding error handler, improve documentation of the builder class methods by @igor-vovk in #69
- Remove "grpc-" response headers by default, extract header mapping in… by @igor-vovk in #70
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- Extract error handler to a separate entity so it can be reused by @igor-vovk in #61
- Be able to filter incoming headers, remove Connection* headers by default by @igor-vovk in #62
Full Changelog: v0.2.1...v0.2.2