{"id":34509949,"url":"https://github.com/vlad441/ncpp","last_synced_at":"2026-05-06T18:01:10.960Z","repository":{"id":323216639,"uuid":"978394212","full_name":"vlad441/ncpp","owner":"vlad441","description":"Минималистичная системная библиотека / Minimalistic system library","archived":false,"fork":false,"pushed_at":"2026-05-06T16:04:51.000Z","size":895,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-06T16:35:17.799Z","etag":null,"topics":["bigint","bson","cbor","cpp98","gui","hashing","http","http-server","json","libary","md5","minimalistic","network","sha256","system","tcp","tcp-server","udp","winxp","zero-dependency"],"latest_commit_sha":null,"homepage":"http://ncpp.art","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vlad441.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-05T23:21:21.000Z","updated_at":"2026-05-06T15:57:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vlad441/ncpp","commit_stats":null,"previous_names":["vlad441/ncpp"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vlad441/ncpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad441%2Fncpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad441%2Fncpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad441%2Fncpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad441%2Fncpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vlad441","download_url":"https://codeload.github.com/vlad441/ncpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad441%2Fncpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32705620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigint","bson","cbor","cpp98","gui","hashing","http","http-server","json","libary","md5","minimalistic","network","sha256","system","tcp","tcp-server","udp","winxp","zero-dependency"],"created_at":"2025-12-24T03:39:09.741Z","updated_at":"2026-05-06T18:01:10.951Z","avatar_url":"https://github.com/vlad441.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![version](https://img.shields.io/badge/version-v0.0.1-blue) [![C++](https://img.shields.io/badge/C%2B%2B-98-00599C?logo=c%2B%2B)](https://ru.cppreference.com/w/cpp/98) [![C++](https://img.shields.io/badge/C%2B%2B-11-00599C?logo=c%2B%2B)](https://ru.cppreference.com/w/cpp/11) [![ru](https://img.shields.io/badge/%D1%8F%D0%B7%D1%8B%D0%BA-%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%20%F0%9F%87%B7%F0%9F%87%BA-white)](README.md) [![en](https://img.shields.io/badge/lang-English%20%F0%9F%87%BA%F0%9F%87%B8-white)](README-EN.md) [![docs-ru](https://img.shields.io/badge/docs-%F0%9F%93%84%20RU-lightgrey)](docs/ru/introduction.md) [![docs-en](https://img.shields.io/badge/docs-%F0%9F%93%84%20EN-lightgrey)](docs/en/introduction.md) [![Github link](https://img.shields.io/badge/github-gray)](https://github.com/vlad441/ncpp) [![License](https://img.shields.io/badge/license-PD-blue.svg)](https://github.com/vlad441/ncpp/blob/main/UNLICENSE) [![Windows](https://img.shields.io/badge/Windows-✅%20Supported-0078D6?logo=windows)](https://www.microsoft.com/windows) [![Linux](https://img.shields.io/badge/Linux-✅%20Supported-0078D6?logo=linux)](https://kernel.org)\r\n\r\n**ncpp** (Node C++) — a minimalistic system library that aims to provide a simple and efficient cross-platform multitool inspired by Node.js documentation.\r\n\r\nncpp offers implementations across various domains for C++98 standards and above, such as buffer handling, files, networking, encryption, and more, while minimizing external dependencies and maintaining a minimal footprint.\r\n\r\n[Features](#features)\r\n\r\n[Build](#build)\r\n- [Dependencies](#dependencies)\r\n- [Direct Source Inclusion](#direct-source-inclusion)\r\n\r\n[Usage](#usage)\r\n- [Examples](#examples)\r\n\r\n[Documentation](#documentation)\r\n\r\n## Features\r\n- **Core:**\r\n  - Standard containers: Array, String, Buffer, HashMap.\r\n  - Standard conversions: numbers \u003c-\u003e strings, etc.\r\n- **System:**\r\n  - Standard I/O (readline/print).\r\n  - File system operations.\r\n  - System information gathering.\r\n  - Process and thread management.\r\n  - Console: console management.\r\n  - Network: Sockets (TCP/UDP/Unix), HTTP client, TCP/HTTP server, WebSockets.\r\n  - Date and system time utilities.\r\n- **Structures and Algorithms:**\r\n  - CBOR/JSON/BSON support.\r\n  - BigInt: Arbitrary-precision integers.\r\n- **Cryptography:**\r\n  - Hashing (MD5, SHA1/2/3).\r\n  - Symmetric encryption (AES).\r\n- **Graphics:**\r\n  - WinApi/X11 window initialization.\r\n  - OpenGL context initialization.\r\n  - Event handling.\r\n\r\n## Build\r\n- **Compiler Support**:\r\n  - [x] GCC/MinGW \u003e= 3.4.2 (recommended \u003e= 4.9.2)\r\n  - [x] Clang \u003e= 3.5.2\r\n  - [ ] ~~MSVC~~ (not planned)\r\n- **Standard Support**: \u003e= C++98\r\n- **OS Support**:\r\n  - [x] Windows XP/7/10+\r\n  - [x] Linux \u003e= 2.6.18 (recommended \u003e= 3.10.0)\r\n    - [x] X11\r\n    - [ ] Wayland\r\n  - [ ] FreeBSD (not planned in the near future)\r\n  - [ ] Android (not planned in the near future)\r\n  - [ ] ~~MacOS, iOS~~ (not planned)\r\n  \r\n### Dependencies\r\nThe project strives to minimize external dependencies, though some components may require additional packages:\r\n- **Windows**: - (All necessary components are already included in the standard system setup)\r\n- **Linux**: Requires `glibc`/`musl` (Usually included in the minimal setup of any distribution)\r\nFor `GUI`, `GL`, and `Experimental` components, the following packages may be required:\r\n```bash\r\n# GUI -\u003e X11 packages: \r\napt install libx11-dev libxtst-dev -y --no-install-recommends\r\n# GL -\u003e OpenGL packages: \r\napt install libgl1-mesa-dev -y --no-install-recommends\r\n# Experimental -\u003e Audio:\r\n#apt install libasound2-dev -y --no-install-recommends\r\n# Experimental -\u003e Images: Requires stb_image implementation (Not included in the project code)\r\n```\r\n\r\n### Direct Source Inclusion\r\nThis is the primary (and currently only) method, especially if you want to manually choose the optimization level when compiling each project for a specific platform.\r\n\r\nTo simplify and speed up the build, a `Unity Build` style is used, where a single translation unit (master file) is compiled from `.cpp` files in the required sequence. This helps with optimizations but may consume more memory compared to classical modular builds.\r\n\r\nYou can use the `make.sh`/`make.bat` scripts in the `scripts` directory for this purpose. (Must be run from the `scripts` directory).\r\nBy default, the script will build the `example.cpp` located in the project root.\r\n\r\nAdditionally, you can simply include the master file `#include \"src/ncpp.cpp\"` in your code. This will include the full library implementation into your file.\r\n(Note: in this case, you may need to manually set compiler flags and link system libraries).\r\n\r\n#### Windows\r\n```batch\r\ngit clone --single-branch --branch main --depth 1 https://github.com/vlad441/ncpp.git\r\n::Or: you can download the archive: https://github.com/vlad441/ncpp/archive/refs/heads/main.zip\r\n::Since Git automatically converts line endings to LF, you may need to change the line ending format to CRLF for make.bat when downloading the archive\r\n\r\ncd ncpp/scripts\r\nmake.bat\r\n```\r\n\r\n#### Linux\r\n```bash\r\ngit clone --single-branch --branch main --depth 1 https://github.com/vlad441/ncpp.git\r\n#Or: you can download the archive: https://github.com/vlad441/ncpp/archive/refs/heads/main.zip\r\n\r\ncd ncpp/scripts\r\nchmod 755 make.sh\r\nbash make.sh\r\n```\r\n\r\n## Usage\r\n\r\n### Examples\r\nYou can check out the simple [example.cpp](example.cpp) in the root of the project.\r\n\r\nYou can also find a few examples in the [examples section](docs/ru/introduction.md#examples) of the documentation.\r\n\r\n## Documentation\r\nFor more detailed information, you can find the documentation [here](docs/en/introduction.md).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlad441%2Fncpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvlad441%2Fncpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlad441%2Fncpp/lists"}