# eclipse-score/baselibs architecture

> Architecture diagram of the GitHub repository eclipse-score/baselibs, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/eclipse-score/baselibs
- Repository: https://github.com/eclipse-score/baselibs
- Video tour (about a minute): https://gitdiagram.com/eclipse-score/baselibs/video

## Overview

Base Libraries is a collection of foundational C++ and Rust APIs for S-CORE modules, not one end-user application. A consuming module selects a capability, calls its library API, and uses the returned values or effects; there is no single cross-repository processing pipeline. The map groups the major runtime domains visible in the tree, including concurrency, data formats, tracing, OS access, and utility libraries. The README documents the overall library role; sampled source confirms selected API boundaries and behavior, so uncertain links between modules are omitted.

Main entry points: [`score/thread/lib.rs`](https://github.com/eclipse-score/baselibs/blob/main/score/thread/lib.rs) (Threading), [`score/sync/lib.rs`](https://github.com/eclipse-score/baselibs/blob/main/score/sync/lib.rs) (Allocator sync), [`score/concurrency`](https://github.com/eclipse-score/baselibs/tree/main/score/concurrency) (C++ concurrency), [`score/json/json_parser.h`](https://github.com/eclipse-score/baselibs/blob/main/score/json/json_parser.h) (JSON APIs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_concurrency["Concurrency"]
  node_thread["Threading<br/>[lib.rs]"]
  node_sync["Allocator sync<br/>[lib.rs]"]
  node_cpp_concurrency["C++ concurrency"]
end

subgraph group_data["Data and formats"]
  node_json["JSON APIs<br/>[json_parser.h]"]
  node_json_model["JSON model<br/>[any.h]"]
  node_flatbuffers["FlatBuffers support<br/>[load_buffer.hpp]"]
  node_tracing["Generic tracing"]
end

subgraph group_system["System interfaces"]
  node_filesystem["Filesystem APIs<br/>[filesystem.h]"]
  node_pal["POSIX adaptation<br/>[lib.rs]"]
  node_qnx_resource["QNX resource manager<br/>[resource_manager.h]"]
  node_safe_cpp["Safe C++ support"]
end

subgraph group_utilities["Core utilities"]
  node_containers_rust["Rust containers<br/>[lib.rs]"]
  node_containers_cpp["C++ containers"]
  node_allocator["Allocator<br/>[lib.rs]"]
  node_bitops["Bit operations<br/>[bit_manipulation.h]"]
  node_datetime["Time conversion<br/>[time_conversion.h]"]
  node_hash["Hashing<br/>[hash.h]"]
end

node_consumer(("S-CORE module"))

node_consumer -->|"uses API"| node_thread
node_consumer -->|"uses API"| node_sync
node_consumer -->|"uses API"| node_cpp_concurrency
node_consumer -->|"uses API"| node_containers_rust
node_consumer -->|"uses API"| node_containers_cpp
node_consumer -->|"uses API"| node_allocator
node_consumer -->|"uses API"| node_bitops
node_consumer -->|"uses API"| node_datetime
node_consumer -->|"uses API"| node_hash
node_consumer -->|"uses API"| node_json
node_consumer -->|"uses API"| node_flatbuffers
node_consumer -->|"uses API"| node_tracing
node_consumer -->|"uses API"| node_filesystem
node_consumer -->|"uses API"| node_pal
node_consumer -->|"uses API"| node_qnx_resource
node_consumer -->|"uses API"| node_safe_cpp

click node_thread "https://github.com/eclipse-score/baselibs/blob/main/score/thread/lib.rs"
click node_sync "https://github.com/eclipse-score/baselibs/blob/main/score/sync/lib.rs"
click node_cpp_concurrency "https://github.com/eclipse-score/baselibs/tree/main/score/concurrency"
click node_containers_rust "https://github.com/eclipse-score/baselibs/blob/main/score/containers_rust/lib.rs"
click node_containers_cpp "https://github.com/eclipse-score/baselibs/tree/main/score/containers"
click node_allocator "https://github.com/eclipse-score/baselibs/blob/main/score/allocator/lib.rs"
click node_bitops "https://github.com/eclipse-score/baselibs/blob/main/score/bitmanipulation/bit_manipulation.h"
click node_datetime "https://github.com/eclipse-score/baselibs/blob/main/score/datetime_converter/time_conversion.h"
click node_hash "https://github.com/eclipse-score/baselibs/blob/main/score/hash/code/core/hash.h"
click node_json "https://github.com/eclipse-score/baselibs/blob/main/score/json/json_parser.h"
click node_json_model "https://github.com/eclipse-score/baselibs/blob/main/score/json/internal/model/any.h"
click node_flatbuffers "https://github.com/eclipse-score/baselibs/blob/main/score/flatbuffers/load_buffer.hpp"
click node_tracing "https://github.com/eclipse-score/baselibs/blob/main/score/analysis/tracing/generic_trace_library/interface_types/generic_trace_api.h"
click node_filesystem "https://github.com/eclipse-score/baselibs/blob/main/score/filesystem/filesystem.h"
click node_pal "https://github.com/eclipse-score/baselibs/blob/main/score/pal/lib.rs"
click node_qnx_resource "https://github.com/eclipse-score/baselibs/blob/main/score/os/utils/qnx/resource_manager/include/resource_manager.h"
click node_safe_cpp "https://github.com/eclipse-score/baselibs/blob/main/score/language/safecpp/coverage_termination_handler/coverage_termination_handler.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_thread,node_sync,node_cpp_concurrency toneBlue
class node_json,node_json_model,node_flatbuffers,node_tracing toneAmber
class node_filesystem,node_pal,node_qnx_resource,node_safe_cpp toneMint
class node_containers_rust,node_containers_cpp,node_allocator,node_bitops,node_datetime,node_hash toneRose
class node_consumer toneIndigo
```

## Components

### Concurrency

- [Threading](https://github.com/eclipse-score/baselibs/blob/main/score/thread/lib.rs): `score/thread/lib.rs`
- [Allocator sync](https://github.com/eclipse-score/baselibs/blob/main/score/sync/lib.rs): `score/sync/lib.rs`
- [C++ concurrency](https://github.com/eclipse-score/baselibs/tree/main/score/concurrency): `score/concurrency`

### Data and formats

- [JSON APIs](https://github.com/eclipse-score/baselibs/blob/main/score/json/json_parser.h): `score/json/json_parser.h`
- [JSON model](https://github.com/eclipse-score/baselibs/blob/main/score/json/internal/model/any.h): `score/json/internal/model/any.h`
- [FlatBuffers support](https://github.com/eclipse-score/baselibs/blob/main/score/flatbuffers/load_buffer.hpp): `score/flatbuffers/load_buffer.hpp`
- [Generic tracing](https://github.com/eclipse-score/baselibs/blob/main/score/analysis/tracing/generic_trace_library/interface_types/generic_trace_api.h): `score/analysis/tracing/generic_trace_library/interface_types/generic_trace_api.h`

### System interfaces

- [Filesystem APIs](https://github.com/eclipse-score/baselibs/blob/main/score/filesystem/filesystem.h): `score/filesystem/filesystem.h`
- [POSIX adaptation](https://github.com/eclipse-score/baselibs/blob/main/score/pal/lib.rs): `score/pal/lib.rs`
- [QNX resource manager](https://github.com/eclipse-score/baselibs/blob/main/score/os/utils/qnx/resource_manager/include/resource_manager.h): `score/os/utils/qnx/resource_manager/include/resource_manager.h`
- [Safe C++ support](https://github.com/eclipse-score/baselibs/blob/main/score/language/safecpp/coverage_termination_handler/coverage_termination_handler.h): `score/language/safecpp/coverage_termination_handler/coverage_termination_handler.h`

### Core utilities

- [Rust containers](https://github.com/eclipse-score/baselibs/blob/main/score/containers_rust/lib.rs): `score/containers_rust/lib.rs`
- [C++ containers](https://github.com/eclipse-score/baselibs/tree/main/score/containers): `score/containers`
- [Allocator](https://github.com/eclipse-score/baselibs/blob/main/score/allocator/lib.rs): `score/allocator/lib.rs`
- [Bit operations](https://github.com/eclipse-score/baselibs/blob/main/score/bitmanipulation/bit_manipulation.h): `score/bitmanipulation/bit_manipulation.h`
- [Time conversion](https://github.com/eclipse-score/baselibs/blob/main/score/datetime_converter/time_conversion.h): `score/datetime_converter/time_conversion.h`
- [Hashing](https://github.com/eclipse-score/baselibs/blob/main/score/hash/code/core/hash.h): `score/hash/code/core/hash.h`

### Other components

- **S-CORE module**

## Connections

- S-CORE module → Threading: uses API
- S-CORE module → Allocator sync: uses API
- S-CORE module → C++ concurrency: uses API
- S-CORE module → Rust containers: uses API
- S-CORE module → C++ containers: uses API
- S-CORE module → Allocator: uses API
- S-CORE module → Bit operations: uses API
- S-CORE module → Time conversion: uses API
- S-CORE module → Hashing: uses API
- S-CORE module → JSON APIs: uses API
- S-CORE module → FlatBuffers support: uses API
- S-CORE module → Generic tracing: uses API
- S-CORE module → Filesystem APIs: uses API
- S-CORE module → POSIX adaptation: uses API
- S-CORE module → QNX resource manager: uses API
- S-CORE module → Safe C++ support: uses API
