30 open-source projects similar to nodejs/nan, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Nan alternative.
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
NativeScript is a cross-platform mobile development framework that enables the creation of native iOS and Android applications using JavaScript or TypeScript. It provides a direct bridge to native platform APIs, allowing developers to invoke native classes, methods, and properties directly from script code while maintaining full access to underlying mobile operating system features. The framework distinguishes itself through its direct native UI rendering, which maps declarative markup components to actual platform-native widgets rather than web-based views. This architecture is supported by
Rhino is a Java-based JavaScript engine that implements an ECMAScript compatibility layer for execution inside a Java virtual machine. It serves as an embedded scripting engine and a scripting bridge, allowing JavaScript code to be integrated and executed within Java applications. The project facilitates direct inter-language communication by mapping Java classes and objects into a JavaScript environment. This integration enables scripts to interact with internal system services and native host objects through a dedicated mapping mechanism. The engine optimizes performance by compiling JavaS
This project is a learning guide and collection of study notes designed to teach Node.js backend development. It provides a comprehensive core API reference and practical demonstrations for implementing server-side logic, network programming, and system APIs. The guide specifically covers advanced technical domains including process management for scaling applications via clusters and child processes, as well as network programming for building TCP, UDP, and HTTP services. It also includes detailed instructional material on security implementation, focusing on cryptographic hashing and encryp
Cello is a programming language extension for C that provides a higher-level implementation of the language. It integrates an object-oriented framework, an automated garbage collection system, and a runtime reflection library to enable dynamic type inspection. The project implements a structured system for object orientation within C, including support for classes, type classes, and polymorphism. It includes a runtime exception handling system to intercept execution errors and initiate recovery procedures. The framework further provides generic programming capabilities for creating reusable
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
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++ native code into Android applications. This repository serves as a practical guide for developers utilizing the Android Native Development Kit to implement performance-critical application components that require direct hardware access and low-level system interaction. The project highlights the use of the Java Native Interface to bridge managed code with native modules, enabling cross-language function calls and efficient data exchange. It demonstrates how to manage native act
napi-rs is a framework and toolkit for building high-performance native extensions for Node.js using Rust. It functions as a bridge between Rust and JavaScript runtimes, enabling the conversion of data types and the execution of native functions within a JavaScript environment. The project provides a native binary compiler and a cross-platform module orchestrator to automate the compilation and publishing of packages across multiple operating systems and architectures. It generates corresponding JavaScript type definitions and platform-specific binaries to ensure consistent installation. The
This is a bcrypt password hashing library and cryptography module for Node.js. It provides a toolset for generating secure salts, computing cryptographically strong hashes, and verifying passwords to protect user credentials from unauthorized access. The library implements adaptive hashing, utilizing a configurable cost factor to increase the computational effort required to brute-force passwords. It includes a password verification tool that protects the comparison process from timing attacks. The project covers secure password hashing and salt generation, as well as utilities for hash cost
This project is a comprehensive technical guide and diagnostic manual for analyzing memory, performance, and asynchronous behavior within Node.js applications. It provides detailed methods for asynchronous tracing, memory diagnostics, and performance analysis to resolve runtime errors and execution bottlenecks. The resource distinguishes itself by covering advanced diagnostic workflows, including the use of flame graphs for CPU profiling, the capture and comparison of heap snapshots for memory leak detection, and the mapping of asynchronous call stacks. It also provides technical guidance on
node-sqlite3 is a relational database client and a set of native bindings that allow Node.js applications to interact with SQLite databases. It functions as a C++ native addon, linking JavaScript to the SQLite C library to manage data stored in local files or in-memory stores. The project includes optional support for SQLCipher, enabling page-level encryption to secure local database files. The driver covers a wide range of database management capabilities, including executing SQL queries with parameter binding, managing connections to database files, and preparing statements for repeated ex
node-gyp is a build system wrapper and compilation tool designed to transform C and C++ source code into binary modules for the Node.js runtime. It functions as a native module compiler that orchestrates the process of converting native source code into binary bindings for high-performance execution. The project provides cross-platform compilation by managing different compilers and SDKs across Windows, macOS, and Linux. It translates a single project configuration into platform-specific build files, such as Makefiles or Visual Studio projects, to ensure consistent builds across different ope
node-canvas is a server-side 2D vector graphics and image processing library for Node.js. It provides a server-side implementation of the HTML5 Canvas API using the Cairo graphics library as its rendering engine to draw shapes, text, and paths. The library enables the programmatic generation of dynamic images and the creation of scalable vector graphics and PDF documents. It supports the registration of custom and system fonts for typography rendering and allows for the import of image assets via local paths, buffers, data URIs, and remote URLs. Capabilities include low-level pixel manipulat
Sidekiq is a background job processor and queue manager for Ruby that uses Redis to manage asynchronous tasks. It functions as a distributed task scheduler capable of handling periodic, delayed, and recurring jobs across a cluster of worker processes. The project features a job monitoring dashboard and administrative web interface for visualizing system state, tracking worker performance, and managing failed or dead jobs. It provides a distributed rate limiter to control execution frequency across multiple processes. The framework covers a broad range of operational capabilities, including j
opencv4nodejs is a set of JavaScript wrappers and a C++ native addon that provides Node.js bindings for the OpenCV library. It functions as a computer vision library and image processing framework, exposing high-performance C++ algorithms to a JavaScript environment. The project enables the execution of vision algorithms for detecting faces, tracking objects, and analyzing visual data using deep neural networks. It includes capabilities for data pattern classification, text pattern recognition, and the identification of facial landmarks and gestures. The framework covers a broad capability s
Robotjs is a native Node.js automation library and desktop input simulator. It uses C++ bindings to provide low-level access to operating system functions, allowing for the programmatic control of the mouse and keyboard and the analysis of screen pixels. The library functions as a toolkit for automating user interfaces and desktop workflows, including those within Electron applications. It enables the simulation of key presses and mouse movements to automate interactions with desktop software and perform automated data entry. Its capabilities extend to screen pixel analysis, where it capture
uWebSockets.js is a high-performance tool for building WebSocket and HTTP servers within Node.js. It focuses on high-throughput web servers and real-time data streaming, enabling the creation of network applications that handle a large number of concurrent connections with low memory and CPU overhead. The project distinguishes itself through a native C++ implementation that integrates directly with the Node.js event loop. It utilizes native-layer route matching and a shared memory architecture to minimize allocation overhead and avoid data duplication during message transmission. The impleme
Iptvnator is an Electron-based desktop application for streaming live television and radio. It serves as an IPTV player and playlist manager that supports M3U, Xtream Codes, and Stalker portals, providing a unified interface for organizing and viewing media lists. The application functions as both an internal player and an external player wrapper, allowing users to hand off stream URLs to native third-party media players to bypass browser codec limitations. It includes a dedicated XMLTV program guide that maps external schedule data to live channels for broadcast discovery and catchup feature
better-sqlite3 is a high-performance SQLite3 client for Node.js that executes queries synchronously, returning results directly without callbacks or promises. It compiles as a native addon using N-API, binding directly to the SQLite3 C library for immediate query execution and zero-copy result serialization into native JavaScript objects. The library is optimized for Write-Ahead Logging (WAL) mode, enabling faster concurrent reads and writes in web applications. It provides durability level tuning through the synchronous pragma, allowing adjustments between FULL, NORMAL, and OFF modes to bala
NodeGit is a native Node.js binding library that wraps the libgit2 C API, providing direct Git repository operations from JavaScript without shelling out to the Git command-line interface. It exposes Git operations such as cloning remote repositories, opening local repositories, reading file contents from specific commits, and walking through commit history, all through a Promise-based asynchronous API that prevents event loop starvation by offloading blocking operations to a worker pool. The library distinguishes itself by bridging the C/JavaScript boundary through N-API, with reference-coun
Neon is a framework for writing high-performance native Node.js modules using the Rust programming language. It serves as a foreign function interface bridge and a toolchain for bootstrapping, compiling, and managing Rust-based extensions. The project provides a cross-language memory manager that handles buffers and object borrowing to ensure safe memory access between Rust and JavaScript. It enables the mapping of data types and function calls across the language boundary, allowing Rust functions to be exported to the script environment and JavaScript functions to be called from Rust. The f
JavaCV provides a Java-based interface for native computer vision and video processing libraries. It functions as a wrapper for native vision libraries, allowing Java applications to perform image analysis, object detection, and video stream processing. The project integrates comprehensive computer vision capabilities, including facial recognition, image segmentation, and optical flow analysis for motion tracking. It also provides tools for hardware geometry calibration and projector-camera alignment to ensure accurate spatial representation. The system covers high-performance media renderin
Synapse is a Matrix homeserver implementation that provides the infrastructure for decentralized, real-time communication and messaging. It functions as a federated chat server that synchronizes room data and event streams across independent server instances to enable cross-domain interoperability. The server utilizes a hybrid core that integrates performance-critical logic in Rust with a Python orchestration layer. It employs a PostgreSQL relational database for persisting user accounts and conversation history, and uses a Redis-based messaging system to distribute tasks across horizontal wo
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
matplotlib-cpp is a header-only C++ library and wrapper that enables the creation of 2D and 3D visualizations by calling Matplotlib functions directly from C++ code. It serves as a plotting interface for generating line plots, bar graphs, and surface charts using a Python-based backend. The library is designed as a lightweight integration that provides plotting capabilities without requiring a complex build process or compiled binaries. It covers a range of visualization capabilities, including multi-dimensional data rendering, vector field plotting, and the arrangement of multiple subplots.
Darwinkit is a Cgo interop layer and library of native bindings that allows Go applications to call Apple frameworks and system APIs. It functions as a bridge between the Go runtime and native C-compatible symbols to facilitate macOS system programming and native application development. The project includes an Objective-C binding generator that scans system symbol databases to produce Go source code and constants. This tool enables the inspection of framework symbols and the management of binding modules to maintain current interfaces with native frameworks. The library provides a memory ma
Jint is a JavaScript interpreter for the .NET ecosystem that executes code without requiring a browser or Node.js environment. It is an ECMAScript compliant engine that provides a sandboxed scripting runtime with configurable limits on memory and time to run untrusted code. The engine features a native object bridge that exposes .NET classes and methods to JavaScript scripts for bidirectional data exchange. To reduce overhead during repeated executions, it utilizes a precompiled script cache to store parsed JavaScript in memory. The project covers asynchronous script execution and promise ha
The Chromium Embedded Framework (CEF) is a framework for embedding a full Chromium web browser into native desktop applications, enabling them to render web content and execute JavaScript. It provides a multi-process browser runtime that manages isolated browser, renderer, and GPU processes to maintain application stability and security, along with a process sandboxing framework that restricts child process capabilities to prevent malicious web content from affecting the host system. CEF distinguishes itself through a comprehensive native JavaScript bridge library that bridges native applicat
BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It functions as a distributed queue manager and task scheduler, utilizing Redis to manage asynchronous job processing and persistence. The system distinguishes itself through its role as a job workflow orchestrator, enabling the definition of complex parent-child job dependencies and hierarchies for multi-step workflows. It provides sandboxed process execution to isolate heavy workloads and prevent event loop blocking, alongside distributed rate limiting to protect downstream servic