Skip to main content

Minimalistic dynamic library which is a powerful server written in C and C++.

Project description

Arnelify Logo

Arnelify Server for Python C++ G++ Python Nuitka

🚀 About

Arnelify® Server for Python - is a minimalistic dynamic library which is a powerful server written in C and C++.

📋 Minimal Requirements

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

📦 Installation

Installing via pip:

pip install arnelify-server

🎉 Usage

Install dependencies:

make install

Compile library:

make build

Compile & Run test:

make test_nuitka

Run test:

make test

📚 Code Examples

Configure the C/C++ IntelliSense plugin for VSCode (optional).

Clang_format_fallback = Google

IncludePath for VSCode (optional):

"includePath": [
  "/opt/homebrew/Cellar/jsoncpp/1.9.6/include/json",
  "${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.

⚖️ MIT License

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.

🛠️ Contributing

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.

⭐ Release Notes

Version 0.7.8 - Minimalistic dynamic library

We are excited to introduce the Arnelify Server dynamic library for Python! Please note that this version is raw and still in active development.

Change log:

  • Minimalistic dynamic library for Python
  • 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.

🔗 Mentioned

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arnelify_server-0.7.8.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arnelify_server-0.7.8-cp311-cp311-manylinux2014_x86_64.whl (599.1 kB view details)

Uploaded CPython 3.11

File details

Details for the file arnelify_server-0.7.8.tar.gz.

File metadata

  • Download URL: arnelify_server-0.7.8.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for arnelify_server-0.7.8.tar.gz
Algorithm Hash digest
SHA256 b066ee5352ed0fd2f899632d6c71bb3a9be5b18b770dd7b90c5d1eda5b7d5a9b
MD5 9e0593a0cd87f8ac9f030ecc89dc8ce1
BLAKE2b-256 31c5b272c100d65d2eaaa5ca30164ba5aadd81fe58bd90da272e3a4fb30a549b

See more details on using hashes here.

File details

Details for the file arnelify_server-0.7.8-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for arnelify_server-0.7.8-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8864a3ed22a3426fba3bf36f84235b3ff08c4d4c8ba24e040f133cde25f4707b
MD5 cda442ff09ad21ce1e6697f579b7d71f
BLAKE2b-256 1f6404f56f9ca9335da3a02c38000f48ea52052eb80105256e37aa8e64abf8d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page