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↗
4,322 stars·400 forks·JavaScript·MIT·14 views

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.

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.

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 were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

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

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.

What are some open-source alternatives to node-ffi/node-ffi?

Open-source alternatives to node-ffi/node-ffi 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…

Open-source alternatives to Node Ffi

Similar open-source projects, ranked by how many features they share with Node Ffi.
  • 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
  • See all 30 alternatives to Node Ffi→