The DOOM of Async Frameworks: Write Once, Build Everywhere, Process Everything.
Nodepp is a groundbreaking C++ framework that bridges the gap between the language's raw performance and the developer-friendly abstractions of Node.js. By providing a high-level, asynchronous API, Nodepp empowers you to write C++ with a familiar syntaxβenabling seamless development across cloud servers, desktop apps, and microcontrollers.
At its core, Nodepp features a 100% asynchronous architecture powered by an internal Event Loop. This allows for massive concurrency and scalable task management with minimal code complexity, effectively bringing the "Write Once, Run Everywhere" philosophy to the world of high-performance C++.
π: Nodepp The MOST Powerful Framework for Asynchronous Programming in C++
To showcase Nodepp for Arduino efficiency on "bare metal" hardware, we implemented a fully functional Enigma Machine on an Arduino Nano.
ezgif-7f4dec232396a556.mp4
Try it now: Enigma Machine Simulation
To showcase Nodepp for Web, we ported the classic Duck Hunt to Virtual Reality, running natively in the browser via WebAssembly. This project pushes the limits of web-based VR by combining low-level C++ performance with modern Web APIs.
ezgif-7a54260198ce48cc.mp4
Play it now: Duck Hunt VR on Itch.io
# Openssl
πͺ: pacman -S mingw-w64-ucrt-x86_64-openssl
π§: sudo apt install libssl-dev
# Zlib
πͺ: pacman -S mingw-w64-ucrt-x86_64-zlib
π§: sudo apt install zlib1g-devinclude(FetchContent)
FetchContent_Declare(
nodepp
GIT_REPOSITORY https://github.com/NodeppOfficial/nodepp
GIT_TAG origin/main
GIT_PROGRESS ON
)
FetchContent_MakeAvailable(nodepp)
#[...]
target_link_libraries( #[...]
PUBLIC nodepp #[...]
)- π: Lightweight: Minimal dependencies, making it ideal for IoT and embedded systems.
- π: Cross-Platform: Write once, run on Linux, Windows, Mac, Android, WASM and Arduino/ESP32.
- π: Memory Efficient: Custom
ptr_t,queue_t,array_tandstring_tprimitives provide SSO (Small Stack Optimization) and zero-copy slicing. - π: Scalability: Build applications that can handle large workloads and grow with your needs.
- π: Open-source: Contribute to the project's development and customize it to your specific requirements.
- π: Computer Vision VR Controllers for phones Demo
- π: Draw on your PC using your smartphone
- π:Β Simple multiplayer Game With Raylib
- π:Β Cursed Luna - A simple Raylib Game
- π: Smart Card Reader(Nodepp-Arduino)
- π: Serial Port arduino using Nodepp
- π: Simple Raylib Real-Time Chat
- π: Simple Bitget Trading Bot
Check out some articles on Medium
- π: UTF Support: Comprehensive manipulation for UTF8, UTF16, and UTF32.
- π: Networking: Native support for TCP, TLS, UDP, HTTP, and WebSockets.
- π: Built-in JSON & RegExp: Full parsing and text processing engines.
- π: I/O Multiplexing: Support for Poll, Epoll, Kqueue, and WSAPoll.
- π: Reactive Programming: Built-in Events and Observers system.
#!/usr/bin/env bash
git clone https://github.com/NodeppOfficial/nodepp ; cd nodepp#!/usr/bin/env bash
touch main.cpp#include <nodepp/nodepp.h>
#include <nodepp/regex.h>
#include <nodepp/http.h>
#include <nodepp/date.h>
using namespace nodepp;
void onMain(){
auto server = http::server([=]( http_t cli ){
cli.write_header( 200, header_t({
{ "content-type", "text/html" }
}));
cli.write( regex::format( R"(
<h1> Hello World </h1>
<h2> ${0} </h2>
)", date::fulltime() ));
});
server.listen( "localhost", 8000, [=]( socket_t server ){
console::log("server started at http://localhost:8000");
});
}#!/usr/bin/env bash
π§: g++ -o main main.cpp -O3 -I ./include ; ./main #(Linux)
πͺ: g++ -o main main.cpp -O3 -I ./include -lws2_32 ; ./main #(Windows)- π: NodePP for Window | Linux | Mac | Bsd
- π: NodePP for Arduino
- π: Nodepp for WASM
- π: ExpressPP -> Express equivalent for Nodepp
- π: ApifyPP -> Socket.io equivalent for Nodepp
- π: Bluetooth -> Bluetooth Port for Nodepp
- π: SerialPP -> Serial Port for Nodepp
- π: Argon2 -> Argon2 for Nodepp
- π: Torify -> HTTP|Ws over Tor
- π: GPUPP -> GPGPU for Nodepp
- π: NginxPP -> Reverse Proxy
- π: InputPP -> Fake Inputs
- π: XML -> XML for Nodepp
- π: JWT -> JSON Web Token
- π: NmapPP -> Scan IPs and Ports
- π: Redis -> Redis Client for Nodepp
- π: Sqlite -> Sqlite Client for Nodepp
- π: MariaDB -> MariaDB Client for Nodepp
- π: Postgres -> Postgres Client for Nodepp
If you want to contribute to Nodepp, you are welcome to do so! You can contribute in several ways:
- β Buying me a Coffee
- π’ Reporting bugs and issues
- π Improving the documentation
- π Adding new features or improving existing ones
- π§ͺ Writing tests and ensuring compatibility with different platforms
- π Before submitting a pull request, make sure to read the contribution guidelines.
Nodepp is distributed under the MIT License. See the LICENSE file for more details.