14 dépôts
Tools for generating header files from modules to allow external code to interact with native types.
Distinct from C Function Bindings: Distinct from C Function Bindings: focuses on header generation for C++ interoperability rather than just function mapping.
Explore 14 awesome GitHub repositories matching programming languages & runtimes · Native Header Generators. Refine with filters or upvote what's useful.
Swift Evolution serves as the central governance and design platform for the Swift programming language. It provides a structured, collaborative framework for tracking, discussing, and managing the formal proposals and technical goals that define the language's syntax, semantics, and core features. By maintaining a comprehensive collection of design documentation, the project ensures the long-term stability and consistency of the language as it matures. The repository acts as the primary hub for the language's evolution, coordinating community feedback and technical decisions through a transp
Generates header files from modules to allow external code to call functions and interact with native types.
This library provides a cross-platform toolkit for retrieving system metrics and managing processes. It functions as a unified interface for accessing low-level hardware and operating system data, allowing developers to monitor CPU, memory, disk, and network usage across diverse computing architectures without requiring external dependencies. The project distinguishes itself through its ability to maintain consistent data structures across different operating systems by parsing native system headers and wrapping low-level system calls. It includes specialized support for containerized environ
Generates native type definitions by parsing system header files to ensure consistent data structures across diverse hardware architectures.
F Prime est un framework basé sur des composants conçu pour le développement et le déploiement de logiciels embarqués et spatiaux. Il fournit une architecture modulaire qui découple la logique logicielle des interfaces de communication, permettant aux développeurs de définir des structures système via un langage de modélisation spécifique au domaine. Cette approche basée sur les modèles permet la génération automatique de code, garantissant la cohérence des topologies système complexes tout en maintenant des contrats d'interface stricts entre les modules logiciels. Le framework se distingue par son système de build intégré et sa suite d'opérations de données au sol. Il automatise l'intégralité du cycle de vie des logiciels embarqués, de la compilation croisée et la gestion des dépendances à la génération d'interfaces de télémétrie et de commande. En fournissant un environnement unifié pour les logiciels de vol embarqués et la surveillance au sol, il facilite l'intégration, les tests et le contrôle des systèmes embarqués distribués sur diverses plateformes matérielles. Au-delà de son architecture centrale, le projet inclut des outils complets pour l'observabilité du système, notamment la visualisation de télémétrie en temps réel, la journalisation d'événements et le traçage de diagnostic. Il prend en charge un large éventail de scénarios de déploiement, des environnements bare-metal aux systèmes d'exploitation temps réel, et fournit des mécanismes pour la gestion de la mémoire, la modélisation de comportement pilotée par les états et l'exécution de tâches asynchrones. Le projet est maintenu sous forme de dépôt C++ avec une documentation étendue et un support du système de build pour le développement multiplateforme.
Creates header files automatically from component definitions to ensure consistent interface declarations.
Kotlin-native is an ahead-of-time, cross-platform compiler and toolchain that transforms Kotlin source code into standalone native machine binaries. It functions as an LLVM native compiler, producing executable files that run directly on hardware without the requirement of a virtual machine. The project enables cross-platform native development across multiple operating systems and processor architectures, including iOS, Linux, and Windows. This allows for the creation of native Apple platform applications and software for embedded systems programming where direct memory management and minima
Provides tools to parse C headers and automatically generate type-safe language bindings for native interoperability.
SWIG is a tool that generates wrapper code to expose C and C++ libraries to a wide range of higher-level programming languages. It reads annotated C/C++ header files and produces language-specific bindings from a single interface definition, supporting languages such as Python, Java, Ruby, C#, Perl, and many others. The generated wrapper code is free from the project's GPL license, allowing users to distribute it under their own terms. The tool handles modern C++ features including templates, namespaces, smart pointers, and constructs up to C++20 through specialized parsing and code generatio
Produces Java Native Interface wrappers allowing Java applications to invoke C/C++ library routines.
Nanopb est une implémentation C légère de Protocol Buffers conçue pour les systèmes aux ressources limitées et les microcontrôleurs. Il fonctionne à la fois comme une bibliothèque de sérialisation embarquée pour encoder et décoder des données structurées, et comme un générateur de code qui transforme les fichiers de définition en fichiers source et en-tête C compacts. Le projet se distingue par son accent sur l'allocation mémoire statique, utilisant des tailles maximales fixes pour les chaînes et les tableaux afin d'éviter l'allocation mémoire dynamique et la fragmentation du tas. Il emploie un mécanisme de streaming basé sur des callbacks pour traiter les messages ou les champs qui dépassent la RAM physique disponible, permettant la gestion de données de longueur variable sans épuiser la mémoire système. La bibliothèque fournit de larges capacités pour la sérialisation binaire, incluant le calcul de taille encodée, le suivi de présence des sous-messages et le framing au niveau transport. Elle inclut également des utilitaires de réflexion pour l'itération sur les champs, la validation de chaînes UTF-8 et l'application stricte des limites pour garantir la sécurité mémoire lors du parsing d'entrées binaires non fiables.
Generates C header files to enable typed message handling in resource-constrained embedded projects.
Darwinkit est une couche d'interopérabilité Cgo et une bibliothèque de bindings natifs qui permet aux applications Go d'appeler les frameworks Apple et les API système. Il fonctionne comme un pont entre le runtime Go et les symboles natifs compatibles C pour faciliter la programmation système macOS et le développement d'applications natives. Le projet inclut un générateur de bindings Objective-C qui scanne les bases de données de symboles système pour produire du code source et des constantes Go. Cet outil permet l'inspection des symboles de framework et la gestion des modules de binding pour maintenir des interfaces à jour avec les frameworks natifs. La bibliothèque fournit un système de gestion mémoire pour coordonner les cycles de vie des objets natifs au sein de Go. Cela couvre l'utilisation du comptage de références, la création d'autorelease pools pour gérer les objets différés, et l'application de finaliseurs pour prévenir les fuites de mémoire. Il prend également en charge l'interaction directe avec le système d'exploitation via des appels système en binding direct et des requêtes d'informations noyau.
Provides a generator that scans system symbol databases to produce Go source code and constants for native frameworks.
Rust-bindgen est un générateur de liaisons d'interface de fonction étrangère au moment de la construction et un analyseur d'en-têtes C conçu pour automatiser l'interopérabilité entre les langages. Il fonctionne comme un outil pour relier Rust aux bibliothèques C, C++ et Objective-C en produisant des déclarations spécifiques à la plateforme pendant le processus de compilation. Le projet se distingue par sa capacité à gérer des constructions de langage de la famille C complexes, y compris l'héritage et les méthodes C++, ainsi que les classes et protocoles Objective-C. Il garantit la compatibilité binaire entre différentes architectures en calculant les dispositions de mémoire sensibles à la cible et en validant que les tailles et alignements de structure générés correspondent aux définitions source originales. L'outil fournit un mappage de type étendu pour les unions C, les champs de bits et les membres de tableau flexibles, tout en mappant les types de bibliothèque standard intraduisibles ou complexes vers des blobs d'octets opaques. Il inclut un système de configuration pour filtrer les liaisons, substituer des types complexes et contrôler la dérivation de traits ou la visibilité des champs. Les liaisons générées peuvent inclure une documentation extraite des en-têtes système et sont traitées via un formateur standard pour garantir un style de code cohérent.
Creates FFI definitions from Objective-C headers by mapping classes to structs and protocols to traits.
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
Ships a tool that parses C headers to auto-generate Java native bindings and JNI wrappers.
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
Includes a pipeline that automates the creation of language bindings by parsing C headers into metadata and syntax trees.
JavaCPP est un pont JNI C++ et une interface de fonction étrangère qui fournit un générateur de binding, un chargeur de bibliothèque native et un gestionnaire de mémoire native. Il automatise la création de wrappers Java autour des en-têtes C++ natifs et des bibliothèques partagées pour permettre l'interopérabilité entre les deux langages. Le projet dispose d'un générateur de binding C++ qui analyse les fichiers d'en-tête pour produire automatiquement le code de liaison et les interfaces nécessaires pour appeler des fonctions natives. Il inclut un chargeur de bibliothèque native qui localise et extrait les binaires spécifiques à la plateforme depuis le classpath vers un cache local pour l'exécution au runtime. Le système gère l'accès à la mémoire native haute performance via le mappage direct de pointeurs et le suivi des ressources pour prévenir les fuites de mémoire. Il gère le mappage de types complexes pour les structures de données C++ et prend en charge le mappage de rappels (callbacks) natifs pour lier des pointeurs de fonction aux méthodes Java. La boîte à outils permet le remplacement de méthodes gérées par des implémentations C++ ou assembleur pour optimiser le temps d'exécution et réduire la surcharge des ressources.
Parses C++ header files to automatically generate Java wrapper classes and the corresponding JNI glue code.
pycparser is a C99 parser library that converts C source code into an abstract syntax tree consisting of Python objects. It functions as an abstract syntax tree generator, transforming preprocessed C code into a structured hierarchy for programmatic analysis and transformation. The library integrates with a C preprocessor to handle directives before parsing. It also features a stub header parser, which uses minimal mock headers to allow the parsing of C code without requiring a full system C library installation. The project provides tools for static code analysis, C program analysis, and so
Provides minimal stub headers to enable parsing of C source code without a full system library installation.
Phoenix is a cross-platform Python framework designed for building native desktop graphical user interfaces. It functions as a language binding generator and build automation system, enabling developers to create applications that utilize the underlying operating system's native controls and visual styles. The project provides a mechanism for mapping native C++ graphical toolkit components to Python, allowing for the development of desktop
Automatically generates header-based bindings to map native C++ objects into Python interfaces.
The project is a reusable collection of modular compiler and toolchain technologies designed for building optimizers, code generators, and multi-language programming environments. It provides foundational compiler frontend technologies that translate source code written in C, C++, and Objective-C into a low-level programming language and intermediate code format. This intermediate representation enables cross-language analysis, program transformation, and target-independent optimization alongside a cross-platform programming framework that allows developers to write single-source accelerated a
Automatically generates C and C++ header files and Python modules from interface definitions to streamline cross-language integration.