11 repositorios
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.
Este proyecto es una biblioteca de interfaz gráfica de usuario de modo inmediato diseñada para el desarrollo rápido de herramientas e interfaces de depuración. Al generar la geometría de la interfaz de usuario en cada fotograma a través de código procedimental, elimina la necesidad de sincronización de estado persistente entre los datos de la aplicación y la interfaz. Está destinado principalmente a la integración en tuberías de renderizado existentes, donde produce búferes de vértices sin procesar y comandos de dibujo que son agnósticos a la API de gráficos subyacente. La biblioteca se distingue por una arquitectura altamente desacoplada que admite diseños complejos, acoplables y de múltiples vistas. Gestiona posiciones de ventanas, arrastre de pestañas y división de nodos, lo que permite a los desarrolladores separar los elementos de la interfaz en ventanas independientes del sistema operativo. Para garantizar una interacción consistente en diversos entornos, asigna eventos de entrada nativos a un formato unificado y proporciona un alcance robusto basado en identificadores para rastrear los estados de los elementos a través de los fotogramas. El marco ofrece una amplia superficie de capacidad para construir herramientas de motor sofisticadas y utilidades de diagnóstico. Incluye soporte para componentes visuales avanzados como editores de nodos, trazadores 2D y 3D, e inspectores especializados, junto con infraestructura para escalado DPI y renderizado de formas personalizadas. El sistema está diseñado para una alta portabilidad, con opciones de configuración en tiempo de compilación que permiten a los desarrolladores adaptar las estructuras de datos principales y los tipos matemáticos a los requisitos específicos del motor. El repositorio proporciona amplios ejemplos para conectar la biblioteca a los principales backends y marcos de gráficos, junto con herramientas para generar enlaces específicos de lenguaje.
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 es un generador de enlaces de interfaz de funciones extranjeras en tiempo de compilación y analizador de encabezados C diseñado para automatizar la interoperabilidad entre lenguajes. Funciona como una herramienta para unir Rust con librerías C, C++ y Objective-C produciendo declaraciones específicas de la plataforma durante el proceso de compilación. El proyecto se distingue por su capacidad para manejar construcciones de lenguaje de la familia C complejas, incluyendo herencia y métodos de C++, así como clases y protocolos de Objective-C. Asegura la compatibilidad binaria entre diferentes arquitecturas calculando diseños de memoria conscientes del objetivo y validando que los tamaños y alineaciones de las estructuras generadas coincidan con las definiciones de origen originales. La herramienta proporciona un mapeo de tipos extenso para uniones C, campos de bits y miembros de matriz flexibles, mientras mapea tipos de librería estándar complejos o intraducibles a blobs de bytes opacos. Incluye un sistema de configuración para filtrar enlaces, sustituir tipos complejos y controlar la derivación de rasgos o la visibilidad de campos. Los enlaces generados pueden incluir documentación extraída de los encabezados del sistema y se procesan a través de un formateador estándar para asegurar un estilo de código consistente.
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 es un sistema operativo de 64 bits diseñado para el despliegue en metal desnudo y el desarrollo de kernel personalizado. Proporciona un entorno autónomo que opera dentro de un modelo de memoria de espacio de direcciones único, donde todo el software se ejecuta en un nivel de privilegio de anillo cero para eliminar el cambio de contexto y facilitar la interacción directa con el hardware. El sistema se distingue por una arquitectura monolítica que integra la compilación justo a tiempo, permitiendo que el código fuente se traduzca en instrucciones de máquina durante el tiempo de ejecución. Evita las capas de abstracción tradicionales utilizando el mapeo de memoria de hardware directo y un framebuffer de 32 bits agnóstico al hardware para la renderización de gráficos, asegurando un control de baja latencia sobre los recursos del sistema y la salida visual. La plataforma admite una gama de tareas de programación de sistemas de bajo nivel, incluido el manejo de dispositivos de entrada sin procesar y la modernización de arquitecturas de hardware heredadas. Incluye utilidades administrativas como un navegador de sistema de archivos basado en web y mantiene la compatibilidad con cargadores de arranque externos para simplificar el proceso de inicialización en máquinas físicas o virtuales.
Executes all software at the highest processor privilege level to simplify inter-process communication and remove context switching overhead.