LotusRPC release notes
LotusRPC is an RPC framework for embedded systems. Here are the release notes.
lotusrpc 1.0.0 (2026-06-15)
Features
- Added function on LrpcDef to retrieve constant value by name (#122)
- Option to define an alias for complex return types (#127)
- Support ‘etl::byte’ and ‘std::byte’ as LotusRPC byte type. Support for definition file overlays (#195)
- Rename optional dependency to transport_serial. Better error message when it is not installed (#204)
- Added section
user_settingsto definition file for free-format user settings (#229)
⚠ Breaking change: It is no longer allowed to add user settings to the top level of the definition file. They must be under user_settings.
⚠ Breaking change: LotusRPC settings are not allowed at the definition top-level anymore. They should be moved to the new ‘settings’ section.
Bugfixes
- Disallow same name parameter and return in single function (#208)
Misc
⚠ Breaking change: Function LrpcClient.communicate still exists but has different functionality. Migration guide: replace existing calls to LrpcClient.communicate with LrpcClient.communicate_all and existing calls to LrpcClient.communicate_single with LrpcClient.communicate
lotusrpc 0.10.0 (2026-02-27)
Features
- Added option to embed definition in generated server code. This way server and client can never go out of sync (#81)
- Added a meta service with ID 255. this service contains an error stream to report internal errors from server to client. The meta service is not directly accessible to users but provides an enhanced user experience (#83)
- Add version function in meta service. Allows client to check compatibility with server. (#84)
- Reference semantics for array and string (#185)
⚠ Breaking change: This change may require updates to existing service implementations (classes deriving from *_shim).
- Added bytearray convenience type. LotusRPC bytearray has flexible length, handling in C++ is more efficient than ‘array of uint8_t’ and is translated to bytes/bytearray/memoryview in Python (#186)
Bugfixes
- Fix code generation for array parameter in a stream (#188)
- Size field now encodes message size minus 1. This way a message of size 256 is possible in a 256-byte receive/transmit buffer. (#202)
⚠ Breaking change: This change causes binary incompatibility with all previous versions of LotusRPC.
Misc
- #16, #106, #160, #167, #170, #176
⚠ Breaking change: C++ service shims no longer get a
_ServiceShimpostfix — the suffix is now simply_shim.
lotusrpc 0.9.7 (2025-11-16)
Features
- Meta and constants includes are now available in main server include (#103)
- Using yamllint and markdownlint in development process (#147)
- LrpcClient is easier to use (#157)
Improved Documentation
- Added release notes (#62)
- Documentation about frame format. General documentation improvements (#86)
Deprecations and Removals
- Drop support for Python 3.9 (#145)