awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
node-ffi avatar

node-ffi/node-ffi

0
View on GitHub↗

Node Ffi

node-ffi is a foreign function interface library for Node.js that enables calling functions from native C dynamic libraries without writing manual C++ bindings. It serves as a system for loading shared objects and DLLs into process memory, translating JavaScript values into binary representations, and executing external binaries at runtime.

The project utilizes a wrapper around the libffi library to construct call frames and execute native functions with dynamic arguments. It distinguishes itself by providing a native memory manager for allocating raw pointers and a mapping system that connects complex C structures to JavaScript objects.

The toolkit covers a broad range of native interoperability capabilities, including automatic data type translation and the creation of executable memory stubs that allow native libraries to trigger JavaScript callbacks. To maintain main-thread responsiveness, it supports an asynchronous execution model that offloads native function calls to a separate thread pool.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Dynamic Library Function Executions - Provides the core ability to load external shared objects and execute native C functions directly from JavaScript.
  • Foreign Function Interfaces - Provides a comprehensive interface and binding layer for seamless communication between JavaScript and native libraries.
  • Memory-Mapped Data Structures - Connects complex C data structures to JavaScript objects for efficient reading and writing of structured memory blocks.
  • C-to-JavaScript Type Mappings - Provides systems for converting data types specifically between C and JavaScript for memory-compatible function calls.
  • C Struct Mappings - Maps complex C structures and memory blocks into JavaScript objects for reading and writing structured memory.
  • Dynamic Library Loading - Loads external shared objects or DLLs into the process memory space at runtime via system call interfaces.
  • Raw Memory Allocation - Provides a low-level interface for allocating raw contiguous memory buffers and manipulating C-style pointers.
  • Foreign Function Interface Calls - Executes functions from shared libraries by mapping JavaScript types to native C equivalents using libffi.
  • Function-Pointer Callbacks - Creates executable memory stubs that map JavaScript functions as C-style function pointers for native library callbacks.
  • Native C-JavaScript Bridges - Provides an interface designed for data exchange and function calls between native C/C++ code and JavaScript.
  • Native Library Wrappers - Wraps the libffi library to construct native call frames and execute functions with dynamic arguments.
  • Node.js Foreign Function Interfaces - A library for calling functions from native C dynamic libraries directly within Node.js without writing manual C++ bindings.
  • Pointer-Based Memory Access - Implements direct manipulation and extraction of data from raw pointers to handle C structs across the language boundary.
  • Native Library Integration - Allows calling functions from external C or C++ dynamic libraries directly within Node.js without manual glue code.
  • Dynamic Library Loaders - Loads shared objects and DLLs into process memory to execute external binaries at runtime.
  • Native Callbacks - Maps JavaScript functions to C-style function pointers, allowing native libraries to trigger logic within the runtime.
  • Asynchronous Native Calls - Offloads native function execution to a separate thread pool to prevent blocking the Node.js main event loop.
  • Native Callback Stubs - Creates function pointers in memory that allow native libraries to trigger JavaScript callbacks.
  • Worker Thread Patterns - Offloads native function calls to a separate thread pool to prevent blocking the JavaScript main event loop.
4,322 stars·400 forks·JavaScript·MIT·22 views

Star history

Star history chart for node-ffi/node-ffiStar history chart for node-ffi/node-ffi

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does node-ffi/node-ffi do?

node-ffi is a foreign function interface library for Node.js that enables calling functions from native C dynamic libraries without writing manual C++ bindings. It serves as a system for loading shared objects and DLLs into process memory, translating JavaScript values into binary representations, and executing external binaries at runtime.

What are the main features of node-ffi/node-ffi?

The main features of node-ffi/node-ffi are: Dynamic Library Function Executions, Foreign Function Interfaces, Memory-Mapped Data Structures, C-to-JavaScript Type Mappings, C Struct Mappings, Dynamic Library Loading, Raw Memory Allocation, Foreign Function Interface Calls.

Which projects share features with node-ffi/node-ffi?

Projects with overlapping indexed features include: java-native-access/jna — JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared… bytedeco/javacpp — JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader,… torch/torch7 — Torch7 is a scientific computing environment and tensor computation library used for deep learning research and… nodejs/node-addon-api — This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance… libffi/libffi — libffi is a foreign function interface library that enables calling functions written in other languages at runtime.… janet-lang/janet — Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an…

Projects sharing features with Node Ffi

These projects share indexed features with Node Ffi. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • java-native-access/jnajava-native-access avatar

    java-native-access/jna

    8,916View on GitHub↗

    JNA is a foreign function interface and native memory mapper that allows Java applications to call functions in shared native libraries without writing custom JNI wrapper code. It serves as a JNI alternative framework for invoking C functions and mapping native data structures using high-level interfaces. The library distinguishes itself through its ability to translate Java objects and primitives into C-style structs, unions, and pointers for cross-platform memory exchange. On Windows, it provides a dedicated toolkit for interacting with Component Object Model objects using both early and la

    Java
    View on GitHub↗8,916
  • bytedeco/javacppbytedeco avatar

    bytedeco/javacpp

    4,697View on GitHub↗

    JavaCPP is a JNI C++ bridge and foreign function interface that provides a binding generator, a native library loader, and a native memory manager. It automates the creation of Java wrappers around native C++ headers and shared libraries to enable interoperability between the two languages. The project features a C++ binding generator that parses header files to automatically produce the necessary glue code and interfaces for calling native functions. It includes a native library loader that locates and extracts platform-specific binaries from the classpath into a local cache for runtime exec

    Javacc-plus-pluscpp
    View on GitHub↗4,697
  • nodejs/node-addon-apinodejs avatar

    nodejs/node-addon-api

    2,400View on GitHub↗

    This project provides a header-only C++ wrapper for the Node-API, serving as a framework for building high-performance native addons for Node.js. It acts as a bridge between C++ and JavaScript, offering an object-oriented interface that simplifies the creation of compiled extensions while managing the complexities of the language boundary. The library distinguishes itself by providing type-safe abstractions for data marshalling and memory management, ensuring that native and script-side objects are tracked and reclaimed correctly. It includes mechanisms for coordinating asynchronous tasks bet

    C++nodenodejs
    View on GitHub↗2,400
  • torch/torch7torch avatar

    torch/torch7

    9,127View on GitHub↗

    Torch7 is a scientific computing environment and tensor computation library used for deep learning research and numerical analysis. It functions as a Lua-based framework for training neural networks and learning agents, providing a toolkit for implementing architectures and training through reinforcement learning algorithms. The project is distinguished by its tight integration with C, utilizing a binding layer to map high-level scripting to low-level C structures for direct memory access. It supports hardware-accelerated computation by offloading linear algebra and convolution operations to

    C
    View on GitHub↗9,127
Compare all 30 related projects→