Requirements#

Baselibs Requirements
status: valid
security: YES
safety: ASIL_B
tags: baselibs
version: 2
Utils Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a utils library with general-purpose utility functionality, including Base64 encoding and decoding, scoped operations, string views, safe integer arithmetic, safe atomic operations, and defined program termination handling.

Multi-Language APIs
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide APIs for C++, Rust, or both, depending on the requirements of consuming platform components.

JSON Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a JSON library with parsing functionality.

FlatBuffers Library
status: valid
security: YES
safety: QM
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a FlatBuffers library with serialization, read access, and structural verification of FlatBuffers data.

Note

FlatBuffers library provides both ASIL-B and QM compliant functionality depending on the programming language, the separation is done on component level.

Static Reflection Library
status: valid
security: YES
safety: ASIL_B
tags: baselibs
reqtype: Functional
valid_from: v1.0.0
version: 1

The base libraries shall provide a static reflection library enabling compile-time reflection-based serialization and deserialization of C++ data structures.

Result Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide error handling mechanisms that enable development without relying on C++ exceptions.

Panic-Free Development Support
status: valid
security: YES
safety: ASIL_B
tags: baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide error handling mechanisms that enable development without relying on Rust panics. Where an idiomatic interface requires panics, an additional non-panicking option shall be provided as well.

Container Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a container library offering additional container types not present in the ISO C++17 standard library.

ABI-Compatible Containers
status: valid
security: YES
safety: ASIL_B
tags: baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a library of containers that can serve as the basis for ABI-compatible container data structures.

Bit Manipulation Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide bit manipulation utilities for low-level operations on integral types.

Filesystem Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a filesystem library with file and directory manipulation functionality.

Memory Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a memory management library that includes utilities for shared memory operations, polymorphic memory resources, position-independent pointers, endianness conversion, and inter-process synchronization mechanisms.

Concurrency Library
status: valid
security: YES
safety: ASIL_B
tags: inspected, baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a library for parallel execution of C++ callables with thread pool management.

Hash Library
status: valid
security: YES
safety: ASIL_B
tags: baselibs
reqtype: Functional
valid_from: v1.0.0
version: 2

The base libraries shall provide a hash library supporting cryptographic hash calculation (e.g. SHA-256, SHA-512) and checksum algorithms (e.g. CRC-32) over byte data and streams via a pluggable interface.