v1.28.0
Generalized RPC framework - #57
This is an overhaul of RPC macro engine and overall RPC design. Compatibility with previous version is not preserved but RPCFramework is kept as legacy glue code. Porting old usages of RPCFramework to new version should be relatively easy as incompatibilities are not big:
- Signature of raw methods (
fire,callandget) has changed - it takes RPC name in separate parameter list and arguments asList[RawValue]instead ofList[List[RawValue]] RPCMetadataAPI changed - there is separate metadata map for every method type (procedure, function, getter).
Changes in GenCodec and serialization
Breaking changes:
HasGenCodecredesigned.MacroCodec[T]removed in favor orMacroGenerated[GenCodec[T]].HasGenCodecis now more flexible - previously it didn't work for case classes with default parameter values or sealed traits with subclasses in companion object. This was caused by overzealous validation done by the compiler on super constructor arguments - they cannot refer to the object being constructed. Materialization ofMacroGeneratedis now able to work around this.GenCodec.Autohas been deprecated and will be removedInputandOutputnow supportBigIntandBigDecimalnatively - #69
Other changes: