11 Repos
Tools that automatically generate language-specific bindings from C API metadata.
Explore 11 awesome GitHub repositories matching software engineering & architecture · Binding Generators. Refine with filters or upvote what's useful.
Dieses Projekt ist eine Immediate-Mode-GUI-Bibliothek, die für die schnelle Entwicklung von Tools und Diagnose-Schnittstellen konzipiert ist. Durch die Generierung der UI-Geometrie in jedem Frame mittels prozeduralem Code entfällt die Notwendigkeit einer persistenten Zustandssynchronisation zwischen Anwendungsdaten und der Schnittstelle. Es ist primär für die Integration in bestehende Rendering-Pipelines gedacht, wo es rohe Vertex-Buffer und Draw-Befehle erzeugt, die agnostisch gegenüber der zugrunde liegenden Grafik-API sind. Die Bibliothek zeichnet sich durch eine stark entkoppelte Architektur aus, die komplexe, andockbare und Multi-Viewport-Layouts unterstützt. Sie verwaltet Fensterpositionen, Tab-Dragging und Node-Splitting, wodurch Entwickler Schnittstellenelemente in unabhängige Betriebssystemfenster auslagern können. Um eine konsistente Interaktion in verschiedenen Umgebungen zu gewährleisten, bildet sie native Eingabeereignisse in ein einheitliches Format ab und bietet eine robuste identifier-basierte Bereichsverwaltung, um Elementzustände über Frames hinweg zu verfolgen. Das Framework bietet eine breite Palette an Funktionen für den Aufbau anspruchsvoller Engine-Tools und Diagnose-Dienstprogramme. Es umfasst Unterstützung für fortgeschrittene visuelle Komponenten wie Node-Editoren, 2D- und 3D-Plotter sowie spezialisierte Inspektoren, neben der Infrastruktur für DPI-Skalierung und benutzerdefiniertes Shape-Rendering. Das System ist auf hohe Portabilität ausgelegt und bietet Konfigurationsoptionen zur Kompilierzeit, die es Entwicklern ermöglichen, Kerndatenstrukturen und mathematische Typen an spezifische Engine-Anforderungen anzupassen. Das Repository bietet umfangreiche Beispiele für die Verbindung der Bibliothek mit wichtigen Grafik-Backends und Frameworks sowie Tools zur Generierung sprachspezifischer Bindings.
Exposes C API metadata to facilitate the automated creation of language-specific wrappers and bindings.
This project provides a framework for managing multi-agent systems, designed to automate complex software development, infrastructure, and business workflows. It functions as a multi-agent workflow orchestrator that routes tasks to domain-specific workers while maintaining state persistence and infrastructure automation. By leveraging large language models, the system decomposes high-level objectives into actionable plans, ensuring that complex operations are executed with consistency and reliability. The framework distinguishes itself through its hierarchical agent registry and policy-driven
Generates cross-language bindings and headers to facilitate stable integration between different programming environments.
This is a comprehensive library of code examples and reference implementations for building cross-platform user interfaces with Flutter. The project provides a collection of demo applications and guides designed to illustrate the implementation of design patterns, animation techniques, and testing workflows. The repository features specific demonstrations for native integration, including examples of embedding modules into existing native applications, using platform channels, and bridging native code with the framework. It also serves as an animation reference, providing implementations for
Creates bindings for native APIs to enable direct calls to platform-specific code.
CXX is a code generator that produces a safe, zero-overhead FFI bridge between Rust and C++. It lets functions and data types from either language be used directly in the other, with static type safety enforced at compile time and no copying, serialization, or runtime checks across the boundary. The bridge supports the full range of cross-language interactions: Rust can call C++ functions and use C++ types, and C++ can call Rust functions and use Rust types. Standard library types like strings, vectors, and smart pointers are mapped automatically between the two languages, while opaque types
Uses code generation to produce efficient bindings that enforce invariants from both languages at compile time.
The Go Mobile project is a framework and toolchain that enables Go developers to build native mobile applications for Android and iOS entirely in Go, or to compile Go packages into shared libraries that can be called from existing native mobile apps. It provides a complete set of libraries for handling mobile app lifecycle events, rendering 2D and 3D graphics through OpenGL ES, accessing device sensors like accelerometers and gyroscopes, processing touch and keyboard input, playing audio via OpenAL Soft, and reading bundled application assets. The project distinguishes itself by offering two
Exposes Go packages as callable libraries for Java and Objective-C so existing apps can reuse Go code.
mlpack is a header-only C++ machine learning library that defines matrix types as compile-time templates, enabling flexible numeric precision and memory layout without runtime overhead. Its core identity is built around a template metaprogramming architecture that allows algorithms to be included selectively as independent modules, reducing binary size, and supports compile-time serialization of neural network parameters by deducing matrix types and structure at compile time. The library distinguishes itself through a multi-language binding framework that automatically generates bindings for
Automatically generates bindings for Python, R, Julia, Go, and the command line from a single C++ API definition.
Maturin is a build tool that compiles Rust crates into Python wheel packages, supporting multiple binding systems such as PyO3, CFFI, and UniFFI to create native extension modules. It manages the full build pipeline from Rust compilation to wheel assembly, including cross-compilation for different operating systems and architectures without requiring native hardware. The tool integrates development-mode installation with automatic rebuilds: when a Python import hook detects source changes, it triggers recompilation before the module loads. Editable installs link the compiled module into site-
Generates Python bindings from an interface definition file using UniFFI for cross-platform compatibility.
Rust-bindgen ist ein Build-Time-Generator für Foreign Function Interface (FFI)-Bindings und ein C-Header-Parser, der entwickelt wurde, um die Interoperabilität zwischen Sprachen zu automatisieren. Er fungiert als Tool, um Rust mit C-, C++- und Objective-C-Bibliotheken zu verbinden, indem er während des Kompilierungsprozesses plattformspezifische Deklarationen erstellt. Das Projekt zeichnet sich durch seine Fähigkeit aus, komplexe Sprachkonstrukte der C-Familie zu verarbeiten, einschließlich C++-Vererbung und -Methoden sowie Objective-C-Klassen und -Protokolle. Es stellt die binäre Kompatibilität über verschiedene Architekturen hinweg sicher, indem es zielspezifische Speicherlayouts berechnet und validiert, dass die generierten Strukturgrößen und Alignments mit den ursprünglichen Quelldefinitionen übereinstimmen. Das Tool bietet umfangreiches Typ-Mapping für C-Unions, Bitfields und flexible Array-Member, während nicht übersetzbare oder komplexe Standardbibliothekstypen auf opake Byte-Blobs abgebildet werden. Es enthält ein Konfigurationssystem zum Filtern von Bindings, zum Ersetzen komplexer Typen und zur Steuerung der Trait-Ableitung oder Feldsichtbarkeit. Generierte Bindings können extrahierte Dokumentationen aus System-Headern enthalten und werden durch einen Standard-Formatter verarbeitet, um ein konsistentes Code-Styling sicherzustellen.
Passes specific architecture arguments to the compiler to ensure generated bindings match a non-native target system.
LWJGL is a cross-platform library that provides Java bindings to native APIs for graphics, audio, compute, windowing, and input. It enables Java applications to access low-level hardware-accelerated capabilities such as OpenGL and Vulkan rendering, OpenAL 3D audio, OpenCL GPU compute, and GLFW windowing and input handling. Under the hood, LWJGL dynamically resolves native function pointers at runtime, loads platform-specific shared libraries, and uses generated JNI bindings to bridge Java and native code. It offers explicit memory management through direct buffer access and stack-allocated me
Provides a code generation tool that produces native bindings from interface definitions with automatic marshalling.
Silk.NET is a low-level API binding library for the .NET ecosystem that provides high-performance interfaces for graphics, audio, and input APIs. It consists of a C header binding generator that converts headers into type-safe language bindings, a graphics API interface for GPU compute and rendering, and a cross-platform windowing wrapper. The project utilizes a customizable pipeline to automate the generation of language bindings from C headers by mapping metadata to syntax trees. Its windowing and input abstraction provides a unified interface to manage application windows across different
Converts C headers into managed language bindings using a customizable pipeline to reduce manual boilerplate code.
ZealOS ist ein 64-Bit-Betriebssystem, das für Bare-Metal-Bereitstellung und benutzerdefinierte Kernel-Entwicklung konzipiert wurde. Es bietet eine in sich geschlossene Umgebung, die innerhalb eines Single-Address-Space-Speichermodells arbeitet, in dem alle Software auf einer Ring-Zero-Privilegienstufe ausgeführt wird, um Kontextwechsel zu eliminieren und die direkte Hardwareinteraktion zu erleichtern. Das System zeichnet sich durch eine monolithische Architektur aus, die Just-in-Time-Kompilierung integriert, wodurch Quellcode während der Laufzeit in Maschinenbefehle übersetzt werden kann. Es umgeht traditionelle Abstraktionsschichten durch die Nutzung direkter Hardware-Speicherzuordnung und eines hardwareunabhängigen 32-Bit-Framebuffers für das Grafik-Rendering, was eine latenzarme Kontrolle über Systemressourcen und visuelle Ausgabe sicherstellt. Die Plattform unterstützt eine Reihe von Low-Level-Systemprogrammierungstasks, einschließlich der Handhabung roher Eingabegeräte und der Modernisierung von Legacy-Hardwarearchitekturen. Sie enthält administrative Dienstprogramme wie einen webbasierten Dateisystem-Browser und behält die Kompatibilität mit externen Bootloadern bei, um den Initialisierungsprozess auf physischen oder virtuellen Maschinen zu vereinfachen.
Executes all software at the highest processor privilege level to simplify inter-process communication and remove context switching overhead.