skillfed

lcm

Lightweight Communication and Marshalling

lcm v1.5.2 139.5K downloads/30d#11,300 on PyPI
License unclear AGING released

What it is and what it does

LCM is a messaging framework designed for real-time systems that need low-latency, high-bandwidth inter-process communication. It implements a decentralized publish/subscribe model using UDP multicast, eliminating the need for a central broker or daemon. Messages are automatically marshalled and unmarshalled with type safety, and the system supports multiple programming languages so different components can communicate seamlessly.

The package is targeted at robotics, distributed systems, and other domains where direct peer-to-peer communication and minimal overhead matter. It includes logging and playback tools for debugging, and the Python binding requires Python 3.7 or later with prebuilt wheels for common platforms. The project is described as active and focused on stability, though the maintenance signal shows an aging status with a 295-day gap since the last release.

Use it for:

  • Robotics systems where multiple processes on different machines need to exchange sensor and control data with minimal latency.
  • Distributed real-time applications that require efficient broadcast messaging without a centralized message broker.
  • Multi-language systems where different components need to communicate via a common, type-safe protocol.
  • Logging and playback of system events for debugging and analysis of real-time behavior.
  • High-frequency data streaming between processes on the same or networked machines using UDP multicast.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

LCM provides publish/subscribe message passing and automatic data marshalling for real-time inter-process communication with low latency and high bandwidth efficiency.

Yes, if you need decentralized, low-latency inter-process communication in a real-time system and can tolerate an aging maintenance status. The lack of a clear license statement is a blocker for proprietary use—verify licensing before committing. The project claims active status and stability focus, but the 295-day release gap warrants checking whether it meets your production requirements.

Install

lcm on PyPI

pip

pip install lcm

uv

uv add lcm

poetry

poetry add lcm

Installing lcm

Before you install

Medium install friction due to compiled wheels for multiple platforms and Python versions. Maintenance status is aging—295 days since last release—but the project states it is active and focused on stability and maintenance patches.

License in practice

License treatment is unclear; no SPDX identifier or raw license text is available in the metadata. Verify the actual license terms before adopting in proprietary or restricted-license contexts.

Quickstart

pip install lcm
import lcm
lc = lcm.LCM()
# Define and publish/subscribe to messages via LCM

Requires Python 3.7 or later; prebuilt wheels available for multiple platforms.

Verify before relying

  • Actual license terms and restrictions—metadata shows no SPDX or raw license field.
  • Whether the 295-day release gap indicates active maintenance or dormancy despite stated project activity.
  • Real-world latency and throughput performance characteristics for specific use cases.
  • Which Python versions beyond 3.7 are actively tested and supported.

Package facts

License not declared (unclear)
Python support supports the current Python release (>=3.7)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance aging — 295 days since the last release
First released
Downloads 139,455/month — #11,300 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: lcm-1.5.2-cp310-cp310-macosx_14_0_arm64.whl; lcm-1.5.2-cp310-cp310-manylinux_2_28_aarch64.whl; lcm-1.5.2-cp310-cp310-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl; lcm-1.5.2-cp310-cp310-manylinux_2_28_x86_64.whl; lcm-1.5.2-cp310-cp310-musllinux_1_2_aarch64.whl; lcm-1.5.2-cp310-cp310-musllinux_1_2_armv7l.whl; lcm-1.5.2-cp310-cp310-musllinux_1_2_x86_64.whl; lcm-1.5.2-cp310-cp310-win32.whl; lcm-1.5.2-cp310-cp310-win_amd64.whl; lcm-1.5.2-cp311-cp311-macosx_13_0_x86_64.whl; lcm-1.5.2-cp311-cp311-macosx_14_0_arm64.whl; lcm-1.5.2-cp311-cp311-manylinux_2_28_aarch64.whl; lcm-1.5.2-cp311-cp311-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl; lcm-1.5.2-cp311-cp311-manylinux_2_28_x86_64.whl; lcm-1.5.2-cp311-cp311-musllinux_1_2_aarch64.whl; lcm-1.5.2-cp311-cp311-musllinux_1_2_armv7l.whl; lcm-1.5.2-cp311-cp311-musllinux_1_2_x86_64.whl; lcm-1.5.2-cp311-cp311-win32.whl; lcm-1.5.2-cp311-cp311-win_amd64.whl; lcm-1.5.2-cp312-cp312-macosx_13_0_x86_64.whl

Development Status :: 4 - BetaFramework :: Robot FrameworkTopic :: Communications

Tags

inter-process communication ipcpublish subscribe messagingdata marshalling serializationlow latency message passingudp multicast broadcastreal-time system communicationtype-safe message protocol
ipc-messagingreal-time-systemsmulticast

More Communications packages