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.

Quick links


Supported platforms / languages


These are community-maintained forks of LCM that add extra functionality. While they're not part of the official LCM distribution, they're linked to here in case people find them useful.

API Reference

Additional resources

Publications and application notes

Who uses LCM?

LCM was originally developed in 2006 for the MIT DARPA Urban Challenge team, and has since been used in many robotic and autonomous systems, in both research and production environments. Its users have included:

If you're using LCM for development or production, we'd love to hear about it. Let us know by sending a message to the mailing list.