Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

OSAL

Building Veecle applications that can run on different operating systems requires the framework to define an API actors can rely on. To achieve this, the framework provides an Operating System Abstraction Layer (OSAL), enabling to build OS agnostic Veecle applications and reuse its components across different environments.

Crates

The Veecle OSAL is structured in two layers:

Definitions

The veecle_os::osal::api module defines a collection of traits and data structures that abstract over functionality typically provided by the underlying operating system.

This functionality is meant for building actors and applications regardless of where they will run. This ensures the components remain as decoupled as the framework, being portable across different environments.

Implementations

If veecle_os::osal::api is the specification layer, the other modules within veecle_os::osal are the implementations for the different environments.

The available implementations include:

These are the environments supported by Veecle, but users may build their own implementations as needed.

OSAL implementations are meant for specifying the target platform during the runtime’s construction. This is usually done in the corresponding main.rs file. The components of Veecle applications should never rely on concrete implementations, but on the Definitions instead.

See the time documentation for a practical example.