# Install lcm with Homebrew, apt, Nix

Libraries and tools for message passing and data marshalling. Version 1.5.2 via Homebrew; verified from local package data.

## Install

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

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lcm
```

  Evidence: local Homebrew formula metadata

### Linux

- 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

- 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

## Package facts

- **Package key:** brew:lcm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/lcm>
- **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>
- **Upstream docs:** <https://lcm-proj.github.io/lcm>
- **License:** LGPL-2.1-or-later
- **Source archive:** <https://github.com/lcm-proj/lcm/archive/refs/tags/v1.5.2.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

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

## Dependencies

- glib
- lua
- openjdk
- python@3.14

## Build dependencies

- cmake
- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.5.2
- Local data: ok
- Upstream repository: https://github.com/lcm-proj/lcm
- Upstream latest detected: v1.5.2 (current)
- info: No package-manager update timestamp was available.
## 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

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** lcm
- **Version Scheme:** 0
- **Revision:** 1
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## 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/


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [glib](https://www.automicvault.com/pkg/brew/glib/) - Runtime dependency declared by Homebrew.
- [lua](https://www.automicvault.com/pkg/brew/lua/) - Runtime dependency declared by Homebrew.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Runtime dependency declared by Homebrew.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [colfer](https://www.automicvault.com/pkg/brew/colfer/) - Shares av.db curated category or tags: cli, data, serialization.
- [mcap](https://www.automicvault.com/pkg/brew/mcap/) - Shares av.db curated category or tags: cli, data, pubsub, robotics, serialization.
- [protobuf](https://www.automicvault.com/pkg/brew/protobuf/) - Shares av.db curated category or tags: cli, data, serialization.
- [typical](https://www.automicvault.com/pkg/brew/typical/) - Shares av.db curated category or tags: cli, data, serialization.
- [fq](https://www.automicvault.com/pkg/brew/fq/) - Shares av.db curated category or tags: cli, data, messaging.
- [kaf](https://www.automicvault.com/pkg/brew/kaf/) - Shares av.db curated category or tags: cli, data, messaging.
- [kaskade](https://www.automicvault.com/pkg/brew/kaskade/) - Shares av.db curated category or tags: cli, data, messaging.
- [kcat](https://www.automicvault.com/pkg/brew/kcat/) - Shares av.db curated category or tags: cli, data, messaging.

## Combined YAML source

View the package source record on GitHub. [combined/lcm.yml](https://github.com/automic-vault/db/blob/main/combined/lcm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
