#kernel #libos #syscalls

no-std safa-api

A high-level API over SafaOS's syscalls

12 releases

new 0.2.6 Apr 14, 2025
0.2.5 Apr 6, 2025
0.1.7 Mar 25, 2025

#90 in Operating systems

Download history 162/week @ 2025-03-17 302/week @ 2025-03-24 674/week @ 2025-03-31 150/week @ 2025-04-07

1,288 downloads per month

MIT license

54KB
1K SLoC

A high-level API over SafaOS's syscalls

for example self::alloc is a high-level userspace allocator which internally uses the self::syscalls::syssbrk syscall

This crate also exposes raw SafaOS syscalls (see self::syscalls) and raw SafaOS abi structures (see self::raw)


safa-api

An API that exposes SafaOS's syscalls, and provides a higher-level interface over some syscalls.

crates.io docs.rs

Usage

Using in your rust project

simply run

cargo add safa-api

if you have std then you can also add the feature std

cargo add safa-api --features std

if you want to use it in any other project which is written in a language that has a C FFi (such as C, C++, etc.) proceed to the next section

Compiling to static library

there is a script build.sh which builds the library and the crt0 object to ./out directory.

run

./build.sh

and then link it to your project

Dependencies

~15–255KB