For low level abstraction patterns, the first results are golemparts/rppal (This Rust library provides low-level abstractions and hardware interaction for Raspberry Pi peripherals, aligning well with systems-level programming even though it is targeted at a specific platform), espressif/esp-idf (This embedded development framework provides comprehensive low-level hardware abstraction and memory control for microcontrollers, making it a fitting foundation for systems programming despite being tied to specific hardware) and odin-lang/odin (Odin is a systems programming language rather than a code library or framework, but it directly provides low-level memory control, zero-overhead abstractions, and strong FFI capabilities for systems-level development). tinygo-org/tinygo and facebook/folly round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Hand-picked low-level abstraction patterns on GitHub, ranked by stars and activity. Compare the top repositories and find the right fit.
This library provides a collection of low-level abstractions for interacting with hardware peripherals on Raspberry Pi devices using the Rust programming language. It serves as a type-safe interface for controlling physical pins and managing communication with external electronic components and sensors. The project distinguishes itself through its use of compile-time abstractions that map high-level function calls directly to hardware instructions, ensuring minimal runtime overhead. It provides consistent access to hardware by wrapping kernel-level device interfaces and memory-mapped register
This Rust library provides low-level abstractions and hardware interaction for Raspberry Pi peripherals, aligning well with systems-level programming even though it is targeted at a specific platform.
The Espressif SoC Development Framework is a comprehensive toolset for developing, compiling, and flashing applications targeting Espressif system-on-chips. It serves as an embedded toolchain orchestrator and a hardware abstraction layer that simplifies the control of low-level peripherals, memory mapping, and chip-specific registers. The framework provides a dedicated IoT connectivity stack for implementing Wi-Fi, Bluetooth, Zigbee, and Ethernet communication on microcontrollers. It also includes an embedded real-time operating system integration layer to manage multitasking and scheduling o
This embedded development framework provides comprehensive low-level hardware abstraction and memory control for microcontrollers, making it a fitting foundation for systems programming despite being tied to specific hardware.
Odin is a compiled, statically typed systems programming language designed for high-performance software development. It focuses on pragmatic low-level memory control, providing a toolset for manual memory management and precise control over hardware utilization. The language is distinguished by its flexible memory model, which includes custom allocators and precise data layout capabilities to optimize resource usage. It features a comprehensive foreign function interface for importing assembly files and linking with external libraries using configurable calling conventions. The type system
Odin is a systems programming language rather than a code library or framework, but it directly provides low-level memory control, zero-overhead abstractions, and strong FFI capabilities for systems-level development.
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
TinyGo brings the Go language to microcontrollers and WebAssembly with a bare-metal runtime, giving you low-level hardware access and embedded systems programming capabilities, though it is primarily a compiler and development toolkit rather than a conventional systems programming library.
Folly is a collection of high-performance C++ components designed as an extension to the C++ Standard Library for large-scale production environments. It provides specialized toolkits for memory management, concurrency, asynchronous workflows, and low-latency input and output operations. The project distinguishes itself through the provision of lock-free containers and bounded queues to minimize contention in multi-threaded applications, alongside a framework for managing deferred computations using futures and promises. It further offers specialized memory arenas and optimized implementation
Folly provides high-performance C++ components and systems-level utilities that extend the standard library with memory management and low-latency abstractions, though it is tailored for production application infrastructure rather than bare-metal systems programming.
libuv is a cross-platform asynchronous I/O library that provides an abstraction layer for event-driven networking, filesystem operations, and system signals. It utilizes a non-blocking event loop to coordinate asynchronous tasks and I/O events across different operating systems. The project features a unified interface for managing TCP, UDP, and DNS resolution, alongside an inter-process communication layer for sharing sockets via named pipes and Unix domain sockets. To prevent blocking the main execution loop, it includes a multi-platform thread pool for offloading computationally expensive
Libuv is a cross-platform asynchronous I/O and event-driven library providing low-level OS and networking abstractions, making it a fitting systems programming building block even though it relies on standard runtime libraries rather than bare-metal execution.
Swift System is a low-level library that provides safe, idiomatic abstractions for operating system calls and file path manipulation. It serves as a programming interface wrapping native operating system calls and platform types for reliable desktop and mobile integration. The library enforces strict separation of incompatible string types at compile time by wrapping raw values in domain-specific structures, preventing the mixing of system paths with arbitrary text. It translates raw numeric operating system error codes into strongly typed enumeration cases and manages system handles and file
This library provides low-level systems programming abstractions for Swift with file descriptor and path management, though it focuses specifically on POSIX interfaces rather than a full hardware abstraction layer.
The Intel GPU Media Driver is a hardware-accelerated driver designed to facilitate video decoding, encoding, and transcoding operations on Intel graphics processing units. It functions as a low-level abstraction layer that enables media applications to offload compute-intensive processing tasks to dedicated graphics hardware engines through a standardized software interface. The driver distinguishes itself by providing a unified hardware abstraction layer that translates high-level media requests into platform-specific instructions across diverse graphics hardware generations. It manages comp
The Intel GPU Media Driver provides hardware abstraction and low-level system interaction, but it is a specific graphics and video codec driver rather than a general-purpose systems programming framework.
This project provides a comprehensive set of language bindings that enable direct interaction with the Windows API and Windows Runtime components from Rust. It serves as a native interface for systems programming, allowing developers to execute system functions and access operating system services while maintaining memory safety and idiomatic language constructs. The library utilizes metadata-driven code generation to map the entire Windows API surface area into type-safe wrappers. By employing a zero-cost abstraction layer, it ensures that these high-level calls compile to the same machine i
This project provides Windows API bindings and metadata-driven language projections rather than a general systems programming framework or hardware abstraction layer.
The compute runtime is a software layer that provides unified interfaces for parallel processing, kernel execution, and hardware-specific driver communication. It functions as a driver for OpenCL and OneAPI Level Zero, enabling the execution of data-intensive workloads across diverse graphics hardware architectures. The project distinguishes itself by maintaining consistent performance and compatibility across multiple generations of graphics hardware. It achieves this through a hardware abstraction layer that bridges high-level compute instructions with specific silicon capabilities, alongsi
This project provides low-level hardware drivers and compute runtimes for graphics hardware rather than a general systems programming framework or library for low-level abstractions.
This project is a cross-platform game engine framework and build pipeline designed to produce playable executable binaries for desktop and Android devices. It provides a collection of core libraries for game development, including a native Android build system and a C++ build pipeline. The framework features a specialized bitmap font rendering system that displays stylized typography by mapping character indices to image atlases using coordinate and spacing metadata. It also implements a hardware abstraction layer to decouple application logic from graphics and audio drivers, ensuring portabl
This project is a cross-platform game engine and retro game remake rather than a foundational systems programming library or low-level framework.
cuda-python provides low-level Python bindings for the CUDA Driver and Runtime APIs. It serves as a programmatic wrapper for controlling device memory, managing hardware toolchains, and orchestrating execution graphs on NVIDIA GPUs, allowing for the compilation and launching of parallel kernels directly from Python. The project enables the development of SIMT kernels and the execution of mathematical algorithms on device memory. It integrates pre-compiled bytecode as custom operators and interfaces with accelerated device libraries to access low-level hardware functions without leaving the la
This repository provides Python bindings and low-level API wrappers specifically for NVIDIA GPUs rather than a general systems programming framework for hardware abstraction.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| golemparts/rppal | 1.5K | Rust | MIT | |
| espressif/esp-idf | 18.3K | C | Apache-2.0 | |
| odin-lang/odin |
| 9.8K |
| Odin |
| zlib |
| tinygo-org/tinygo | 17.5K | Go | NOASSERTION |
| facebook/folly | 30.4K | C++ | Apache-2.0 |
| libuv/libuv | 26.9K | C | MIT |
| apple/swift-system | 1.4K | Swift | Apache-2.0 |
| intel/media-driver | 1.2K | C | NOASSERTION |
| microsoft/windows-rs | 12.4K | Rust | Apache-2.0 |
| intel/compute-runtime | 1.4K | C++ | MIT |