1 comments

  • EDBC_REPO 4 hours ago
    Hi! I'm Enmanuel D. Becerra C. I'm an electrical engineer and a self taught programmer. For the past decade, I’ve been jumping between embedded systems (IoT, PLC), Frontend, Backend, and Shaders (OpenGL).

    If you’ve ever worked on projects connecting hardware to the cloud and WebAssembly, you know the "Fragmentation Tax": you have to reimplement the same business logic three times, on ESP32 using C++, JS for the dashboard, Go/Node for the server, all while juggling three completely different mental models.

    Three years ago, I asked myself: Is it possible to create a framework that is like DOOM? ( If it’s a potato with a screen, it should run the code, right? ).

    That’s why Nodepp was born: a C++ runtime designed for Silicon-Logic Parity. You write asynchronous code with the ergonomics of Node.js, but compile directly to native binary for an Arduino UNO (8-bit), an ESP32, WASM, or a 128-core Xeon server.

    ----------------------------------------------------------------------------------------

    # What makes it different? (No "Voodoo Engineering")

    - ptr_t (Deterministic RAII): A hybrid memory controller that manages SSO (Small Stack Optimization) and atomic reference counting (configurable for maximum throughput). Memory is reclaimed the microsecond the callback finishes. No Garbage Collector, no "Stop-the-World" spikes, 100% deterministic.

    - kernel_t (Metal-Agnostic Reactor): A unified abstraction over Epoll, Kqueue, and IOCP. If the hardware doesn't support them (e.g., Arduino UNO), Nodepp uses an optimized loop that puts the CPU in active sleep to maximize battery life.

    - coroutine_t (Stackless Coroutines): Cooperative multitasking based on state machines that allows for 100,000 concurrent tasks in a surgical 59MB RAM footprint.

    ----------------------------------------------------------------------------------------

    # The "Potato" Benchmark

    We didn't use a supercomputer to inflate the numbers. We tested Nodepp on an educational-grade Dual-Core Apollo Lake Chromebook:

    > Result: 6,851 RPS with only 2.9MB of physical RAM. Outperforming Bun and Go in resource density while achieving a near 1:1 VIRT/RSS ratio.

    ----------------------------------------------------------------------------------------

    # Proof of Concept: Enigma on an Arduino Nano

    Nodepp is so lightweight that I implemented a functional Enigma Machine on an Arduino Nano (2KB RAM / 16KB ROM), handling an LCD 16x2 screen and a QWERTY keyboard with async logic and physical buttons to modify the rotor states.

    > Demo: https://wokwi.com/projects/449104127751150593

    ----------------------------------------------------------------------------------------

    # Current Limitations (Constructive Friction):

    I'll be honest, Nodepp is still growing:

    - Ecosystem: Integration with standard C++ libraries that use blocking I/O requires non-blocking wrappers.

    - Protocols: Support for HTTP/2/3 and Keep-Alive is on the immediate roadmap.

    - Evolution: We are currently working on io_uring support to take Linux performance to the next level.

    ----------------------------------------------------------------------------------------

    # One Codebase, Every Platform:

    The exact same logic that processes JSON in the cloud manages your microcontroller's registers and modifies the DOM on your webpage, using just one codebase and one mental model.

    - Whitepaper: https://nodeppofficial.github.io/nodepp-doc/whitepaper

    - Repo: https://github.com/NodeppOfficial/nodepp

    I would love to hear your technical feedback, especially regarding the ptr_t memory model and the reactor's efficiency.