Skip to content

Lightweight Communications and Marshalling

License

Notifications You must be signed in to change notification settings

Rooholla-KhorramBakht/lcm

 
 

Repository files navigation

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.

Roadmap

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

Quick Links

Features

  • 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

Supported platforms and languages

  • Platforms:
    • GNU/Linux
      • Ubuntu (20.04 and 22.04)
      • Fedora (37)
    • macOS (11 and 12)
    • Windows (2019 and 2022) via MSYS2
  • Languages
    • C
    • C++
    • Java
    • Lua
    • MATLAB

Python

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 .

Unmaintained languages

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

About

Lightweight Communications and Marshalling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 48.2%
  • C++ 28.1%
  • C 16.7%
  • CMake 2.5%
  • C# 1.7%
  • HTML 0.8%
  • Other 2.0%