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
,call
andget
) has changed - it takes RPC name in separate parameter list and arguments asList[RawValue]
instead ofList[List[RawValue]]
RPCMetadata
API changed - there is separate metadata map for every method type (procedure, function, getter).
Changes in GenCodec
and serialization
Breaking changes:
HasGenCodec
redesigned.MacroCodec[T]
removed in favor orMacroGenerated[GenCodec[T]]
.HasGenCodec
is 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 ofMacroGenerated
is now able to work around this.GenCodec.Auto
has been deprecated and will be removedInput
andOutput
now supportBigInt
andBigDecimal
natively - #69
Other changes: