# Install lcm with Homebrew, Nix, apt

Libraries and tools for message passing and data marshalling. Version 1.5.2 via Homebrew; verified from local package data. Also installable with debian: sudo apt install liblcm-bin.

## Install

```sh
sudo av install brew:lcm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lcm
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#lcm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/lc/lcm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- Debian apt (92%):

```sh
sudo apt install liblcm-bin
```

  Evidence: Debian stable package indexes: liblcm-bin from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

## Package facts

- **Package key:** brew:lcm
- **Package manager:** Homebrew
- **Version:** 1.5.2
- **Source summary:** Libraries and tools for message passing and data marshalling
- **Homepage:** <https://lcm-proj.github.io/>
- **Repository:** <https://github.com/lcm-proj/lcm>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- lcm-gen (alias)
- lcm-logger (alias)
- lcm-logplayer (alias)
- lcm-logplayer-gui (alias)
- lcm-spy (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.5.2
## Project history and usage

LCM, Lightweight Communications and Marshalling, is a message-passing and data-marshalling system for real-time robotics and autonomous systems. It combines publish/subscribe transport, a type specification language, generated language bindings, logging, playback, and traffic inspection tools.

### Project history

The official documentation says LCM was originally developed in 2006 for the MIT DARPA Urban Challenge team. The project authors list Edwin Olson, David Moore, and Albert Huang as original authors, and the 2009 MIT technical report and 2010 IROS paper describe the design as a low-latency, hubless communication library for robotics research.

LCM's early design emphasized UDP multicast, generated type-safe bindings, log files, and tools such as `lcm-logger`, `lcm-logplayer`, and `lcm-spy`. Version 1.0.0 was released on 2013-06-08, and later releases added Python 3 support, CMake, Lua, Go experiments, Windows work, Sphinx documentation, Python wheels, Meson/Bazel work, and maintenance for newer compilers and operating systems.

### Adoption history

LCM spread through robotics and autonomous-systems groups because it was lighter than larger middleware stacks and did not require a central daemon or broker. The official docs list users from research and production environments, including universities, automakers, defense companies, robotics companies, Google, MIT, KAIST, University of Michigan, Volvo Car Group, and Woods Hole Oceanographic Institute.

Package adoption in Homebrew, Debian/Ubuntu, and Nix reflects its use by developers who need reproducible CLI tools and libraries for logging and replaying robotic messages alongside C, C++, Java, Lua, MATLAB, and Python bindings.

### How it is used

Typical usage defines message types in `.lcm` files, generates bindings with `lcm-gen`, publishes and subscribes to channels from application code, records traffic with `lcm-logger`, replays logs with `lcm-logplayer`, and inspects live traffic with `lcm-spy`.

### Why package nerds care

LCM matters to package nerds because it is infrastructure glue for robotics: libraries, code generators, command-line tools, Java artifacts, Python modules, and documentation all have to line up across languages and platforms.

It is also a useful contrast with ROS-style middleware. LCM's no-daemon, UDP-multicast, few-dependency design makes it attractive in package managers where small dependency closure and easy installation matter.

### Timeline

- 2006: Originally developed for the MIT DARPA Urban Challenge team.
- 2009: MIT CSAIL technical report published an expanded LCM description.
- 2010: IROS paper described LCM for low-latency message passing and marshalling.
- 2013-06-08: Version 1.0.0 released.
- 2014-11-18: Version 1.2.0 marked migration of the official site to GitHub.
- 2018-08-30: Version 1.4.0 switched the build system to CMake.
- 2023-04-19: Version 1.5.0 moved documentation to Sphinx at `lcm-proj.github.io/lcm/`.
- 2025-10-23: Version 1.5.2 added stable source archive attachments and Windows-related tool support.

### Related projects

- Related projects include ROS, robotics log and replay tools, UDP multicast infrastructure, DARPA Urban Challenge software stacks, CMake, Sphinx, Java and Python language bindings, and community forks adding languages such as Rust and Vala.

### Sources

- <https://api.github.com/repos/lcm-proj/lcm/releases?per_page=20>
- <https://dspace.mit.edu/bitstream/handle/1721.1/46708/MIT-CSAIL-TR-2009-041.pdf>
- <https://github.com/lcm-proj/lcm>
- <https://lcm-proj.github.io/lcm>
- <https://people.csail.mit.edu/albert/pubs/2010-huang-olson-moore-lcm-iros.pdf>
- <https://raw.githubusercontent.com/lcm-proj/lcm/master/AUTHORS>
- <https://raw.githubusercontent.com/lcm-proj/lcm/master/NEWS.md>
- <https://raw.githubusercontent.com/lcm-proj/lcm/master/README.md>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Debian apt - liblcm-bin - 1.3.1+repack1-9: normalized package name match | Debian stable package indexes: liblcm-bin from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Communications and Marshalling - Executable tools | http://lcm-proj.github.io/
- Debian apt - liblcm-dev - 1.3.1+repack1-9: normalized package name match | Debian stable package indexes: liblcm-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Communications and Marshalling - Dev files | http://lcm-proj.github.io/
- Debian apt - liblcm-doc - 1.3.1+repack1-9: normalized package name match | Debian stable package indexes: liblcm-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Communications and Marshalling - Documentation | http://lcm-proj.github.io/
- Debian apt - liblcm-java - 1.3.1+repack1-9: normalized package name match | Debian stable package indexes: liblcm-java from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Communications and Marshalling - Java Interface | http://lcm-proj.github.io/
- Debian apt - liblcm1 - 1.3.1+repack1-9: normalized package name match | Debian stable package indexes: liblcm1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Communications and Marshalling - Runtime lib | http://lcm-proj.github.io/
- Nix - lcm: normalized package name match | nixpkgs package indexes: pkgs/by-name/lc/lcm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - liblcm-bin - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: liblcm-bin from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Executable tools | http://lcm-proj.github.io/
- Ubuntu apt - liblcm-dev - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: liblcm-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Dev files | http://lcm-proj.github.io/
- Ubuntu apt - liblcm-doc - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: liblcm-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Documentation | http://lcm-proj.github.io/
- Ubuntu apt - liblcm-java - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: liblcm-java from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Java Interface | http://lcm-proj.github.io/
- Ubuntu apt - liblcm1 - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: liblcm1 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Runtime lib | http://lcm-proj.github.io/
- Ubuntu apt - python3-lcm - 1.5.0~repack1-0ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-lcm from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Communications and Marshalling - Python Interface | http://lcm-proj.github.io/


## Combined YAML source

View the package source record on GitHub. [combined/lcm.yml](https://github.com/mxcl/pkgdb/blob/main/combined/lcm.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
