lcm
Lightweight Communication and Marshalling
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 lcmuv
uv add lcmpoetry
poetry add lcmInstalling 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
Tags
More Communications packages
Pyasn1 encodes and decodes ASN.1 data…
permissive · top 100 on PyPI
pyasn1-modulesProvides a collection of ASN.1 data structures…
permissive · top 100 on PyPI
kombuKombu is a messaging library that provides a…
permissive · top 1,000 on PyPI
humanfriendlyFormats and parses numbers, file sizes,…
permissive · top 1,000 on PyPI
coloredlogsAdds colored output to Python's standard…
permissive · top 1,000 on PyPI
aiosmtplibaiosmtplib is an asynchronous SMTP client that…
permissive · top 5,000 on PyPI
blinkerBlinker provides a lightweight event…
permissive · top 1,000 on PyPI
azure-messaging-webpubsubserviceManages WebSocket connections and real-time…
permissive · top 15,000 on PyPI
jeepneyJeepney is a pure Python implementation of…
permissive · top 1,000 on PyPI
nvidia-nccl-cu12Provides NVIDIA's NCCL runtime library for GPU…
unclear · top 1,000 on PyPI
spacepacketsImplements CCSDS and ECSS packet standards for…
permissive · top 15,000 on PyPI
pubnubPubNub Python SDK provides real-time…
unclear · top 15,000 on PyPI
nvidia-nccl-cu13Provides NVIDIA's Collective Communication…
unclear · top 1,000 on PyPI
pynngProvides Python bindings for nng (nanomsg next…
permissive · top 15,000 on PyPI
smpclientImplements the transport layer for the Simple…
permissive · top 15,000 on PyPI
nvidia-nccl-cu11Provides NVIDIA's collective communication…
unclear · top 5,000 on PyPI