14 repository-uri
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 este un framework bazat pe componente, conceput pentru dezvoltarea și implementarea software-ului pentru sisteme embedded și zbor spațial. Acesta oferă o arhitectură modulară care decuplează logica software de interfețele de comunicare, permițând dezvoltatorilor să definească structurile sistemului printr-un limbaj de modelare specific domeniului. Această abordare bazată pe modele permite generarea automată de cod, asigurând consistența în topologii complexe de sistem, menținând în același timp contracte stricte de interfață între modulele software. Framework-ul se distinge prin sistemul său integrat de build și suita de operațiuni cu date la sol. Acesta automatizează întregul ciclu de viață al software-ului embedded, de la compilarea încrucișată și gestionarea dependențelor până la generarea interfețelor de telemetrie și comandă. Prin furnizarea unui mediu unificat atât pentru software-ul de zbor de la bord, cât și pentru monitorizarea la sol, facilitează integrarea, testarea și controlul sistemelor embedded distribuite pe diverse platforme hardware. Dincolo de arhitectura sa de bază, proiectul include instrumente cuprinzătoare pentru observabilitatea sistemului, inclusiv vizualizarea telemetriei în timp real, logarea evenimentelor și trasarea diagnosticelor. Acesta suportă o gamă largă de scenarii de implementare, de la medii bare-metal la sisteme de operare în timp real, și oferă mecanisme pentru gestionarea memoriei, modelarea comportamentului bazat pe stări și execuția asincronă a sarcinilor. Proiectul este menținut ca un depozit C++ cu documentație extinsă și suport pentru sistemul de build pentru dezvoltare multi-platformă.
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 este o implementare C lightweight a Protocol Buffers, concepută pentru sisteme cu resurse limitate și microcontrollere. Aceasta funcționează atât ca bibliotecă de serializare încorporată pentru codificarea și decodificarea datelor structurate, cât și ca un generator de cod care transformă fișierele de definiție în fișiere sursă și header C compacte. Proiectul se distinge prin accentul pus pe alocarea statică a memoriei, utilizând dimensiuni maxime fixe pentru string-uri și array-uri pentru a evita alocarea dinamică a memoriei și fragmentarea heap-ului. Utilizează un mecanism de streaming bazat pe callback-uri pentru a procesa mesaje sau câmpuri care depășesc RAM-ul fizic disponibil, permițând gestionarea datelor de lungime variabilă fără a epuiza memoria sistemului. Biblioteca oferă capabilități largi pentru serializarea binară, inclusiv calcularea dimensiunii codificate, urmărirea prezenței submesajelor și framing la nivel de transport. Include, de asemenea, utilitare de reflexie pentru iterarea câmpurilor, validarea string-urilor UTF-8 și impunerea strictă a limitelor pentru a asigura siguranța memoriei la parsarea input-ului binar neverificat.
Generates C header files to enable typed message handling in resource-constrained embedded projects.
Darwinkit este un strat de interoperabilitate Cgo și o bibliotecă de binding-uri native care permite aplicațiilor Go să apeleze framework-uri Apple și API-uri de sistem. Acesta funcționează ca o punte între runtime-ul Go și simbolurile native compatibile cu C pentru a facilita programarea sistemului macOS și dezvoltarea de aplicații native. Proiectul include un generator de binding-uri Objective-C care scanează bazele de date de simboluri ale sistemului pentru a produce cod sursă Go și constante. Acest instrument permite inspectarea simbolurilor framework-ului și gestionarea modulelor de binding pentru a menține interfețe actualizate cu framework-urile native. Biblioteca oferă un sistem de gestionare a memoriei pentru coordonarea ciclurilor de viață ale obiectelor native în Go. Aceasta acoperă utilizarea numărării referințelor, crearea de autorelease pools pentru a gestiona obiectele amânate și aplicarea finalizatorilor pentru a preveni scurgerile de memorie. De asemenea, suportă interacțiunea directă cu sistemul de operare prin apeluri de sistem cu binding direct și cereri de informații despre kernel.
Provides a generator that scans system symbol databases to produce Go source code and constants for native frameworks.
Rust-bindgen este un generator de binding-uri pentru interfața de funcții străine (FFI) la momentul build-ului și un parser de headere C conceput pentru a automatiza interoperabilitatea între limbaje. Funcționează ca un instrument pentru a face legătura între Rust și bibliotecile C, C++ și Objective-C prin producerea de declarații specifice platformei în timpul procesului de compilare. Proiectul se distinge prin capacitatea sa de a gestiona constructe complexe ale limbajelor din familia C, incluzând moștenirea și metodele C++, precum și clasele și protocoalele Objective-C. Asigură compatibilitatea binară pe diferite arhitecturi prin calcularea layout-urilor de memorie conștiente de țintă și validarea faptului că dimensiunile și aliniamentele structurilor generate se potrivesc cu definițiile sursă originale. Instrumentul oferă mapare extinsă a tipurilor pentru uniuni C, bitfields și membri de tip array flexibili, mapând în același timp tipurile complexe sau netraductibile din biblioteca standard către blob-uri de octeți opace. Include un sistem de configurare pentru filtrarea binding-urilor, substituirea tipurilor complexe și controlul derivării trăsăturilor sau vizibilitatea câmpurilor. Binding-urile generate pot include documentație extrasă din headerele sistemului și sunt procesate printr-un formator standard pentru a asigura un stil de cod consistent.
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 este o punte JNI C++ și o interfață de funcții străine (FFI) care oferă un generator de binding-uri, un încărcător de biblioteci native și un manager de memorie nativă. Automatizează crearea de wrappere Java în jurul header-elor C++ native și a bibliotecilor partajate pentru a permite interoperabilitatea între cele două limbaje. Proiectul dispune de un generator de binding-uri C++ care parsează fișierele header pentru a produce automat codul glue necesar și interfețele pentru apelarea funcțiilor native. Include un încărcător de biblioteci native care localizează și extrage binarele specifice platformei din classpath într-un cache local pentru execuția la runtime. Sistemul gestionează accesul la memorie nativă de înaltă performanță prin maparea directă a pointerilor și urmărirea resurselor pentru a preveni scurgerile de memorie. Gestionează maparea complexă a tipurilor pentru structurile de date C++ și suportă maparea callback-urilor native pentru a lega pointerii de funcții la metodele Java. Setul de instrumente permite înlocuirea metodelor gestionate cu implementări C++ sau assembly pentru a optimiza timpul de execuție și a reduce overhead-ul resurselor.
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.