Lightweight Communications and Marshalling (LCM)
LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical. It provides a publish/subscribe message passing model and automatic marshalling/unmarshalling code generation with bindings for applications in a variety of programming languages.
The LCM project is active again. The current near-term plan is to:
- Clear deprecation warnings from build for all language targets
- Flush backlog of PRs
- Cut a new release
- Low-latency inter-process communication
- Efficient broadcast mechanism using UDP Multicast
- Type-safe message marshalling
- User-friendly logging and playback
- No centralized "database" or "hub" -- peers communicate directly
- No daemons
- Few dependencies
- Platforms:
- GNU/Linux
- Ubuntu (20.04 and 22.04)
- Fedora (37)
- macOS (11 and 12)
- Windows (2019 and 2022) via MSYS2
- GNU/Linux
- Languages
- C
- C++
- Java
- Lua
- MATLAB
To install for a specific version of Python and interpreter first make with proper cmake flag:
cmake -DPython_EXECUTABLE=/path/to/python(>3.6) ..
Then, install as follows:
cd lcm/lcm_python
/path/to/python(>3.6) -m pip install .
The following languages are currently unmaintained. PRs for these languages are still welcome and if you are interested in maintaining them please let us know.
- Go
- C#/.NET