2020-02-03
- Fix: Dsl marker interfaces are properly omitted from generated code when disabled PR-106
- New: Automatically configure artifact version for project kroto dependencies with missing version PR-107 Thanks to @Fleshgrinder
2019-12-26
- New: Update to Kotlin
1.3.61
PR-97 - New: Update to Kotlin Coroutines
1.3.3
- New: Publish native executables for the following platforms
osx-x86_64
,linux-x86_64
,windows-x86_64
PR-87
- New: Include proto documentation in generated sources PR-86 Thanks to @metarag
- Fix: Closing outbound channels with an exception now propagates a cancellation to the underlying stream GH-93 Thanks to @jebbench
- Fix: Update method signature support to adhere to spec GH-92
- Fix: Prevent naming collisions in proto builders PR-88 Thanks to @keyserbrian1
2019-09-03
- New: Update to Kotlin
1.3.50
PR-68 - New: Update to Kotlin Coroutines
1.3.0
- New: Update CI to execute tests against
jdk10
,jdk11
,jdk12
PR-74 - New: Update to project gradle to
5.6.2
- Fix: If no file filter is defined, fallback to
CodeGeneratorRequest.fileToGenerateList
PR-70
- Fix: File filter is no longer ignored in stub extension generator
- New: Refactor stub ext generator and add support for method signature options PR-75
- New: Add missing stub ext overloads for async and blocking stubs PR-75
- New: Add support for method signature options in coroutine stubs PR-72
- Fix: Usage of
@RpcMethod
annotation now properly targets method descriptors in generated code - New: Refactor gRPC coroutines generator for better maintainability PR-76
- New: Expose script cache directory configuration PR-69 Thanks to @AlexeySoshin
- New: Register option extension for
(google.api.http)
so that its available during user script invocation
2019-08-22
- New: Update to Kotlin
1.3.41
- New: Update to Kotlin Coroutines
1.3.0-RC2
- New: Update to gRPC
1.23.0
- New: Update to protobuf
3.9.0
- Fix: Support malformed protobuf filenames PR-63 Thanks to @AlexeySoshin
- Fix: Typo in config message name GH-45 Thanks to @RdeWilde
- Fix: Propagate inbound channel close as call cancellation
Thanks to @chris-blacker PR-61
- Fix: Race condition in outbound flow control
- New: Improvements to the efficiency of outbound flow control handler
- New: Integration tests for client and server coroutine implementations
- New: Improvements to determinism of unit tests
2019-06-17
- New: Update to kotlin
1.3.31
- New: Update to kotlin Coroutines
1.2.1
- New: Update to gRPC
1.20.1
- Fix: Empty object generation when using maps and multiple files. PR-51 Thanks to @sauldhernandez
- New: Default server method execution to
CoroutineStart.ATOMIC
- New: Introduce abstract stub ext for concatenating coroutine contexts,
AbstactStub.plusContext
. - Fix: Don't propagate message for
UNKNOWN
exceptions in rpc exception mapper - Fix: Disable auto flow control for inbound client and server streams during bidi calls
- Fix: Reduce visibility of
FlowControlledInboundStreamObserver
tointernal
- Deprecated:
AbstractStub.coroutineContext
ext in favor ofAbstractStub.context
- New: Added support for Yaml as a configuration format GH-45
- Fix: Address bug in parallelization of generator execution
2019-04-02
- New: Updated docs for public apis
- New: Added
newGrpcStub
coroutine scope ext for creating new stubs. Generated client stubs no longer implementCoroutineScope
(#43) - New: Add flow control for outbound messages in both clients and servers (#42)
- New: Added example for multiple client streaming subscriptions
- Fix: Increased code coverage across all apis (#41)
- Fix: Unary observer has been converted to an internal api
- Removed: Legacy streaming apis have been removed
2019-03-13
- New: Update Kotlin Poet to
1.0.1
(#30)
- New: Propagate client scope cancellation to server using
ClientCall.cancel
(#34) - New: Server rpc scope is now bound to cancellation notifications from the client (#23)
- Fix: Race condition between
StreamObserver.onNext
andStreamObserver.onCompleted
when target channel is full - Fix: Reduce
@KrotoPlusInternalApi
experimental level toExperimental.Level.ERROR
to prevent external usage - Fix: Remove redundant usages of
@ObsoleteCoroutinesApi
in call builders - Fix: Remove unused experimental class
CompletableDeferredObserver
- Fix: Annotate
SuspendingUnaryObserver
as an internal API - Fix: Remove unnecessary creation of
CoroutineScope
innewSendChannelFromObserver
- New: Introduce
ServiceScope
interface and removeCoroutineScope
from generated service classes (#35) - New: Use
Message.getDefaultInstance()
as default value of stub request parameters - New: Increased code coverage across the board
- Deprecated: Legacy service stub rpc builders in favor of new back-pressure supporting stub APIs
- New: Refactored code gen to support new coroutines APIs (#31)
- New: Generate no-arg extensions for all rpc methods with non streaming request parameters. Default request is now set to
Message.getDefaultInstance()
- Fix: Resolve
@DslMarker
insertion regression introduced in0.2.2-RC1
(#32)
2019-02-17
- Fix: Refine API Visibility
- Fix: Remove unused prototype response extensions
- Fix: Remove protobuf dependency from coroutine runtime, Resolves GH-25
- Fix: Propagate client cancellation to server RPC scope
- Fix: Simplify client call stub extensions
- Fix: Remove obsolete annotations from generated stubs
- Fix: Default call option
CALL_OPTION_COROUTINE_CONTEXT
toEmptyCoroutineContext
- Fix: Convert
ClientBidiCallChannel
andClientStreamingCallChannel
to interfaces - Fix: Remove unnecessary data modifier from client call channels
- Fix: Add
component1()
andcomponent2()
operators to client call channel interfaces - Fix: Favor directly handling rpc exceptions over installing a completion handler.
- Fix: Improve rpc method exception handling and propagation.
2019-01-03
- New: Update to kotlin
1.3.11
- New: gRPC Coroutines Client & Server Code Generation
- New: Stand alone version of gRPC code gen.
protoc-gen-grpc-coroutines
- New: Benchmark implementation of gRPC coroutines
- New: Experimental global dispatcher
Dispatchers.Grpc
- New:
SendChannel
utility apiCoroutineScope.launchProducerJob
- Fix: Lowered byte code target for Android compatibility
- Deprecated:
InboundStreamChannel
in favor of new stub APIs - Deprecated:
ServerBidiCallChannel
in favor of new stub APIs
- Fix: Nested messages are now tagged with
@DslMarker
annotation
- New:
grpc-gateway
entry point generation script
2018-11-02
- Fix: Address regression in file filter matching
2018-11-02
- New: Added doc generation for configuration api
- New: Updated to Kotlin
1.3.0
- New: Updated grpc-java to
1.15.1
- Deprecated: Legacy CLI Compiler in favor of protoc compiler plugin
- Fix: Multiple excludes in file filter regex
- New: Updated to stable Coroutines
1.0
- New: Added
GrpcContextElement
as a replacement toGrpcContextContinuationInterceptor
- New: GH-7 Support kotlin
@DslMarker
annotation for proto builders
2018-08-09
- New: Updated Kotlin runtime to
1.2.60
- New: Updated Coroutine version to
0.24.0
- New: Updated Protobuf version to
3.6.1
- New: Updated gRPC version to
1.14.0
- New: Converted Kroto+ to protoc plugin and implemented default generators
- New: Allow users to define scripts to be used for adding content to Protoc insertion points
- New: Allow users to define scripts for arbitrary code generation.
- New: Support precompiled script jars as well as dynamic script compilation.
- New: Added unwrap option to declare builder extensions as top level members.
- New: Builder generator now supports creating builders for nested message types
- New: Builder generator now creates extensions for nested message field builders.
- New: Added plus operator extensions for messages
- Fix: Builder generator now explicitly sets the result type as non null.
- New: Added
GrpcContextContinuationInterceptor
making the grpc context available during suspending service calls in coroutines
- Deprecated: The
ServiceBindingServerRule
has been deprecated due to a change in the latest version ofio.grpc:grpc-testing
- New: Helper methods generated for clearing the response queue start in between tests.
- New: Option added for creating and naming a collection of mock services for easier usage.
- Fix: Moved generated response queue builders into Mock service file.
- New: Generator added for creating extendable messages and inserting pseudo companion objects into java message classes.
- Fix: Changed visibility of cli arguments to internal
- Fix: Removed usage of deprecated
RpcBidiChannel
inStubRpcOverloadGenerator
- Fix: Added missing dsl configuration builder for
ProtoTypeBuildersGeneratorConfig
- Fix: Configuration is no longer overridden when used in a multi project build
- Fix: Gradle Kotlin DSL support added for generator configuration
2018-04-23
- New: Updated Kotlin runtime to
1.2.40
- New: Publish artifacts to jcenter
- Fix: Generated pom no longer includes dependencies that have been embedded
2018-04-10
- New: Added
data
modifier toClientBidiCallChannel
to support destructuring declarations - New: Added
ServerBidiCallChannel<ReqT,RespT>
for future server side coroutine support - Fix: Renamed
RpcBidiChannel<ReqT,RespT>
toClientBidiCallChannel<ReqT,RespT>
- New: Published to gradle plugin portal
- New: GH-1 Added copy extension for proto types.
2018-03-26
- Initial release.