Arnelify® Server for NodeJS - is a minimalistic NodeJS (Bun) Addon which is a powerful server written in C and C++.
Important: It's strongly recommended to use in a container that has been built from the gcc v14.2.0 image.
- CPU: Apple M1 / Intel Core i7 / AMD Ryzen 7
- OS: Debian 11 / MacOS 15 / Windows 10 with WSL2.
- RAM: 4 GB
Installing via npm:
npm install arnelify-server
Installing via yarn:
yarn add arnelify-server
Compile library:
yarn build
Run test:
yarn test
Configure the C/C++ IntelliSense plugin for VSCode (optional).
Clang_format_fallback = Google
IncludePath for VSCode (optional):
"includePath": [
"/usr/local/include/node",
"/opt/homebrew/Cellar/jsoncpp/1.9.6/include/json",
"${workspaceFolder}/node_modules/node-addon-api",
"${workspaceFolder}/src/cpp",
"${workspaceFolder}/src"
],
You can find code examples here.
Option | Description |
---|---|
SERVER_ALLOW_EMPTY_FILES | If this option is enabled, the server will not reject empty files. |
SERVER_BLOCK_SIZE_KB | The size of the allocated memory used for processing large packets. |
SERVER_CHARSET | Defines the encoding that the server will recommend to all client applications. |
SERVER_GZIP | If this option is enabled, the server will use GZIP compression if the client application supports it. This setting increases CPU resource consumption. The server will not use compression if the data size exceeds the value of SERVER_BLOCK_SIZE_KB. |
SERVER_KEEP_EXTENSIONS | If this option is enabled, file extensions will be preserved. |
SERVER_MAX_FIELDS | Defines the maximum number of fields in the received form. |
SERVER_MAX_FIELDS_SIZE_TOTAL_MB | Defines the maximum total size of all fields in the form. This option does not include file sizes. |
SERVER_MAX_FILES | Defines the maximum number of files in the form. |
SERVER_MAX_FILES_SIZE_TOTAL_MB | Defines the maximum total size of all files in the form. |
SERVER_MAX_FILE_SIZE_MB | Defines the maximum size of a single file in the form. |
SERVER_NET_CHECK_FREQ_MS | Network interface check frequency in milliseconds. The lower the value, the higher the CPU |
SERVER_PORT | Defines which port the server will listen on. |
SERVER_THREAD_LIMIT | Defines the maximum number of threads that will handle requests. |
SERVER_QUEUE_LIMIT | Defines the maximum size of the queue on the client socket. |
SERVER_UPLOAD_DIR | Specifies the upload directory for storage. |
This software is licensed under the MIT License. The original author's name, logo, and the original name of the software must be included in all copies or substantial portions of the software.
Join us to help improve this software, fix bugs or implement new functionality. Active participation will help keep the software up-to-date, reliable, and aligned with the needs of its users.
Version 0.7.8 - NodeJS (Bun) Addon
We are excited to introduce the Arnelify Server for NodeJS (Bun) addon! Please note that this version is raw and still in active development.
Change log:
- Minimalistic NodeJS (Bun) Addon
- Block processing in "on-the-fly" mode
- Multi-Threading
- GZIP support
- Significant refactoring and optimizations
Please use this version with caution, as it may contain bugs and unfinished features. We are actively working on improving and expanding the server's capabilities, and we welcome your feedback and suggestions.