Links and Nodes (LN)
Links and Nodes (LN) is an open-source middleware for building distributed real-time robotic systems. It combines process management with fast publish/subscribe messaging and request/response services, allowing complex multi-process systems to be configured and reproduced from a single text configuration file (.lnc).
Developed at the German Aerospace Center (DLR) since 2010, LN supports robotics applications that require deterministic behavior, low-latency communication, and coordinated process control across multiple hosts and programming languages (C, C++, Python).
Key Features
- Process management -- Spawn, monitor, and control processes with dependency ordering, priorities, and real-time introspection.
- Publish/subscribe topics -- Low-latency messaging via shared memory (local), UDP, or TCP.
- Services (request/response) -- Reliable RPC via Unix domain sockets (local) or TCP (network).
- Multi-language APIs -- C, C++, and Python client libraries with a shared message-definition format.
- Single configuration -- Define processes, topics, services, and dependencies in one
.lncfile. - Manager GUI & CLI --
ln_managerfor interactive system monitoring and control (web UI included).
Platform Support
Native install is officially supported on Linux (Ubuntu 22.04+, Debian 12+, ...) only. For macOS and Windows, use the Docker-based installation.
Getting Started
| Goal | Guide |
|---|---|
| Install LN | Installation Guide — Native Linux or Docker |
| Run examples | ln_manager_example repository |
| Full documentation | User Guide & Tutorials |
Documentation
- User Guide & Tutorials -- Getting started, configuration, API reference
- Source API:
libln/include/ln/ln.h(C),libln/include/ln/cppwrapper.h(C++),python/links_and_nodes/(Python)
Docker Images
If you prefer to run LN from a container, see docker/README.md for complete Docker usage documentation.
License
The core library (libln) is released under LGPLv3 so it can be dynamically linked into non-GPL projects. All other components (ln_daemon, ln_manager, Python bindings) are released under GPLv3.
How To Contribute
If you want to contribute, please read CONTRIBUTING.md guide first.
DLR-RMC Instructions
For DLR-RMC systems, see README.RMC.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file liblinks_and_nodes-2.9.0.tar.gz.
File metadata
- Download URL: liblinks_and_nodes-2.9.0.tar.gz
- Upload date:
- Size: 5.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f59d2712e21bee08f10e276829280e5e0d729ed69d773eb68a74688cb6e19cc
|
|
| MD5 |
0ef73fe16b7a4aa1126456f901742826
|
|
| BLAKE2b-256 |
eb71ed322605c590e69a034ce561ff1fa6e6c466b58043d204343b04dfdf7ea0
|
File details
Details for the file liblinks_and_nodes-2.9.0-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: liblinks_and_nodes-2.9.0-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
488d2e4ed57dc15577999269443813bda19fcc28505176e4b27f347880ae30a1
|
|
| MD5 |
245f0ebc8fff15203412f6bcbcfb4c68
|
|
| BLAKE2b-256 |
48f23fa28e03affbb0934550bcd0120e7c1fd6136599e0198c7cfc02f7315d90
|
File details
Details for the file liblinks_and_nodes-2.9.0-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: liblinks_and_nodes-2.9.0-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59147c81819044f7a28e657d5d91e901a7c57e5b2550826c41d50f135c425ea5
|
|
| MD5 |
d98b410ddc450b9ea28df9a8883c999a
|
|
| BLAKE2b-256 |
e1e6b176cb12999b9a1f6aef109440a2c3bd7ea93631a9f60706b12f3f7cf3fa
|
File details
Details for the file liblinks_and_nodes-2.9.0-cp312-cp312-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: liblinks_and_nodes-2.9.0-cp312-cp312-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8b2fabb8b9ebca5b06be207630aac208fd459d829501069eb0d438a9949aef3
|
|
| MD5 |
51607197c45fc1eb87a0a7fab3912daf
|
|
| BLAKE2b-256 |
5c51cc79b9bd7bd0f85509cde30e38c3c79b205788aa40f966fe4e490440d44f
|
File details
Details for the file liblinks_and_nodes-2.9.0-cp311-cp311-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: liblinks_and_nodes-2.9.0-cp311-cp311-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9358556511e2fc98770f6aabfbde18e5c74786240f71bb0b22da233debcbe8e4
|
|
| MD5 |
ac03370b483e2ba7de7f71b58a0d2837
|
|
| BLAKE2b-256 |
bad3d5d13b534d1f08a26d65c696c241926c73accccf6917f9f8aa1b77159870
|
File details
Details for the file liblinks_and_nodes-2.9.0-cp310-cp310-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: liblinks_and_nodes-2.9.0-cp310-cp310-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd6709e573dd2b4aaf9ce6055c63077bc858204ff5683a08e6f19e88ee217f47
|
|
| MD5 |
bf3bc2ddfcf13ec307a515d83f31bd4b
|
|
| BLAKE2b-256 |
c3b1249a0efb1c6f4c954e272598553a202c635aaf730e01384bbe98f2c33022
|