/nodepp

Nodepp | Asynchronous C++ like Javascript

Primary LanguageC++MIT LicenseMIT

Nodepp

Nodepp is an innovative open source project that aims to make it easier to create applications in C++. This project introduces a high-level abstraction layer that allows developers to write C++ code in a way that is similar to how they would write code in NodeJS. With Nodepp, developers can leverage the advantages of the C++ language while benefiting from the ease of use and flexibility that NodeJS offers. This unique combination of features makes Nodepp a powerful tool for creating high-performance and scalable applications. Additionally, since it is an open source project, anyone can contribute and improve Nodepp to fit their specific needs.

Dependencies

  • 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-dev

Features

  • C++11 | C++14 | C++17 | c++20 | c++23 Compatible
  • Allows writing C++ code as if writing in NodeJS or Javascript
  • Includes a build-in JSON parser / stringify system
  • Open source project, meaning anyone can contribute and improve it
  • Includes a build-in RegExp engine for processing text strings
  • Adds a high-level abstraction layer to simplify C++ application development
  • Compatible with several platforms like Windows | Linux | macOS | freeBSD | Arduino
  • Includes an Event Loop that can handle multiple events and tasks on a single thread
  • Supports Coroutines, which allows running multiple tasks concurrently on a single thread
  • Includes support for TCP | TLS | UDP | HTTP | WS making it easy to create networked applications
  • Includes Support for Poll | Epoll | Kqueue | WSAPoll making it easy to handle multiple file descriptors

Build & Run

  • ๐Ÿง: g++ -o main main.cpp -I ./include ; ./main
  • ๐ŸชŸ: g++ -o main main.cpp -I ./include -lws2_32 ; ./main

Hello world

#include <nodepp/nodepp.h>

using namespace nodepp;

void onMain() {
    console::log("Hello World!");
}

Examples

FAQ

Contribution

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.

NOTE: We don't use STD here, just Pure C++.

License

Nodepp is distributed under the MIT License. See the LICENSE file for more details.