{"id":45572275,"url":"https://github.com/eclipse-score/communication","last_synced_at":"2026-03-09T13:08:50.436Z","repository":{"id":281204440,"uuid":"943337444","full_name":"eclipse-score/communication","owner":"eclipse-score","description":"Repository for the communication module LoLa","archived":false,"fork":false,"pushed_at":"2026-03-04T08:26:53.000Z","size":5115,"stargazers_count":37,"open_issues_count":58,"forks_count":52,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-03-04T13:50:01.162Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eclipse-score.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-05T14:47:37.000Z","updated_at":"2026-03-04T08:24:44.000Z","dependencies_parsed_at":"2025-07-04T05:19:44.511Z","dependency_job_id":"8991f430-7688-4c18-8b12-5005c583d45d","html_url":"https://github.com/eclipse-score/communication","commit_stats":null,"previous_names":["eclipse-score/communication"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/eclipse-score/communication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fcommunication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fcommunication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fcommunication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fcommunication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-score","download_url":"https://codeload.github.com/eclipse-score/communication/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-score%2Fcommunication/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30297111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T11:12:22.024Z","status":"ssl_error","status_checked_at":"2026-03-09T11:10:54.577Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-23T08:19:14.813Z","updated_at":"2026-03-09T13:08:50.395Z","avatar_url":"https://github.com/eclipse-score.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Communication Module (LoLa)\n\n[![Eclipse Score](https://img.shields.io/badge/Eclipse-Score-orange.svg)](https://eclipse-score.github.io/score/main/modules/communication/index.html)\n\n- A high-performance, safety-critical communication middleware implementation based on the Adaptive AUTOSAR Communication Management specification. \n- This module provides zero-copy, shared-memory based inter-process communication (IPC) in embedded systems.\n\n## Overview\n\nThe Communication Module (also known as **LoLa** - Low Latency) is an open-source implementation that provides:\n\n- **High-Performance Intra-ECU IPC**: Zero-copy shared-memory communication for minimal latency within ECUs\n- **AUTOSAR Compliance**: Partial implementation of Adaptive AUTOSAR Communication Management (ara::com)\n- **Event-Driven Architecture**: Publisher/subscriber pattern with skeleton/proxy framework\n- **Service Discovery**: Flag file-based service registration and lookup mechanism\n- **Safety-Critical**: Designed for automotive safety standards (ASIL-B qualified)\n- **Multi-Threading Support**: Thread-safe operations with atomic data structures\n- **Memory Management**: Custom allocators optimized for shared memory usage\n- **Tracing Infrastructure**: Zero-copy, binding-agnostic communication tracing support\n- **Multi-Platform**: Supports Linux and QNX operating systems\n\n## Architecture\n\nThe module consists of two main components:\n\n### 1. LoLa/mw::com (High-Level Middleware)\n- **Service Discovery**: Automatic service registration and discovery [`score/mw/com/impl/find_service_handler.h`](score/mw/com/impl/find_service_handler.h)\n- **Event/Field Communication**: Publish-subscribe messaging patterns [`score/mw/com/impl/generic_proxy_event.h`](score/mw/com/impl/generic_proxy_event.h)\n- **Method Invocation**: Remote procedure call (RPC) support [`score/mw/com/impl/generic_proxy.h`](score/mw/com/impl/generic_proxy.h)\n- **Quality of Service**: ASIL-B and QM (Quality Management) support [`score/mw/com/types.h`](score/mw/com/types.h)\n- **Zero-Copy**: Shared-memory based data exchange [`score/mw/com/message_passing/`](score/mw/com/message_passing/)\n\n### 2. Message Passing (Low-Level Foundation)\n- **Asynchronous Communication**: Non-blocking message exchange [`score/mw/com/message_passing/design/`](score/mw/com/message_passing/design/)\n- **Multi-Channel**: Multiple senders to single receiver communication (unidirectional n-to-1) [`score/mw/com/message_passing/`](score/mw/com/message_passing/)\n- **OS Abstraction**: POSIX and QNX-specific implementations [`score/mw/com/message_passing/mqueue/`](score/mw/com/message_passing/mqueue/) | [`score/mw/com/message_passing/qnx/`](score/mw/com/message_passing/qnx/)\n- **Message Types**: Support for short messages (~8 bytes payload) and medium messages (~16 bytes payload) [`score/mw/com/message_passing/design/`](score/mw/com/message_passing/design/)\n\n## System Flow Diagram\n\n### Intra-ECU communication\n\n\u003cimg src=\"https://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/eclipse-score/communication/main/lola_flowdiagram.puml\"\u003e\n\n```\nFlow Steps:\n1. Publisher registers service with unique identifier\n2. Subscriber searches for services by identifier  \n3. Service discovery matches publisher and subscriber\n4. Publisher sends data to shared memory (zero-copy)\n5. Subscriber receives notification of new data\n6. Data transferred via direct shared memory access\n7. OS provides underlying memory management and synchronization\n```\n\u003e **Note**: Inter-ECU communication via [SOME/IP](https://github.com/eclipse-score/score/issues/914) is under architectural planning. The block diagram will be updated post-implementation.\n\n## Communication Patterns\n\n### Pattern 1: Simple Event Publishing\n```\nFor example:\nSensor App ──► [Temperature Data] ──► Dashboard App\n                (30ms intervals)      (Real-time display)\n```\n\n### Pattern 2: Multi-Subscriber Broadcasting  \n```\nFor example:\nCamera App ──► [Video Frame] ──┬──► Display App\n                               ├──► Recording App  \n                               └──► AI Processing App\n```\n\n## Getting Started\n\n### Prerequisites\n- **C++ Compiler**: GCC 12+ with C++17 support\n- **Build System**: Bazel 6.0+\n- **Operating System**: Linux (Ubuntu 24.04+) or QNX\n- **Dependencies**: GoogleTest, Google Benchmark\n\n### DevContainer Setup(Recommended)\n\n\u003e**Note**:\n\u003e This repository offers a [DevContainer](https://containers.dev/).\n\u003e For setting this up and enabling code completion read [eclipse-score/devcontainer/README.md#inside-the-container](https://github.com/eclipse-score/devcontainer/blob/main/README.md#inside-the-container).\n\n\u003e**Note**:\n\u003e If you are using Docker on Windows **without `WSL2`** in between, you have to select the alternative container `eclipse-s-core-docker-on-windows`.\n\n### Building the Project\n\n```bash\n# Clone the repository\ngit clone \u003crepository-url\u003e\ncd communication\n\n# Build all targets\nbazel build //...\n\n# Run tests\nbazel test //...\n\n# Build specific component\nbazel build //score/mw/com:all\n```\n\n## Project Structure\n\n```\ncommunication/\n├── score/mw/com/  # Main communication middleware (design,code,tests,examples)\n├── third_party/   # External dependencies\n├── bazel/         # Build configuration\n└── BUILD          # Root build file\n```\n\n## Documentation\n\n### For Users\n- [User Guide](score/mw/com/README.md) - Getting started with the API\n- [API Reference](score/mw/com/design/README.md) - Detailed API documentation\n- [Examples](score/mw/com/example/) - Code examples and tutorials\n\n### For Developers\n- [Architecture Guide](score/mw/com/design/README.md) - System architecture overview\n- [Service Discovery Design](score/mw/com/design/service_discovery/README.md) - Service discovery implementation\n- [Message Passing Design](score/mw/com/message_passing/design/README.md) - Low-level messaging details\n- [Safety Requirements](score/mw/com/doc/assumptions/README.md) - Safety assumptions and requirements\n\n## Contributing\n\nWe welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## Support\n\n### Community\n- **Issues**: Report bugs and request features via [GitHub Issues](https://github.com/eclipse-score/communication/issues)\n- **Discussions**: Join community [discussions](https://github.com/eclipse-score/communication/discussions) on the Eclipse forums\n- **Documentation**: Comprehensive docs in the [`design/`](score/mw/com/design/) and [`doc/`](score/mw/com/doc/) directories\n\n---\n\n**Note**: This is an open-source project under the Eclipse Foundation. It implements automotive-grade communication middleware suitable for safety-critical applications.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-score%2Fcommunication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-score%2Fcommunication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-score%2Fcommunication/lists"}