produce a package length exactly to where the end-of-package byte sequence is cut in half, the shadow copy will fail to be created due to the end-of-package byte sequence being cut in half, this issue was fixed by reading the package in chunks to determine the end-of-package byte sequence. The PackageReader class has been updated to use a more efficient buffer management when reading data from a file. Previously, buffer size was growing uncontrollably and can eventually lead to out-of-memory errors for large files. Now, the data is read in chunks and the buffer is cleared when it exceeds approximately 1MB size, maintaining only the last 512KB. This change ensures a more memory-efficient package reading and effectively prevents erroneous deadlocks for large package files. Additionally, detection for end-of-data byte sequence has been modified to rectify an issue where package length could cut off the end-of-package byte sequence. This results in an improved reliability for package validation. |
||
---|---|---|
.idea | ||
assets | ||
old_docker | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Dockerfile.debian | ||
DOCUMENTATION.md | ||
LICENSE | ||
Makefile | ||
README.md |
Nosial Code Compiler
Nosial Code Compiler is a package compiler, manager & installer for PHP. Allowing you to install and manage multiple
versions of php packages on your system that your PHP programs/projects can share and use. Additionally, ncc also allows
you to create a redistributable package of your PHP program/project in the form of a .ncc
binary package file.
Features
- Package Manager
- Support for repositories such as GitHub, GitLab, GitTea and Packagist
- Package compiler
- Execution Handler
- Import System (No need for autoloaders!)
Dependencies
- PHP 8.0 or higher
- php-mbstring extension
- php-zip extension
- php-mbcrypt extension
- php-ctype extension
- php-curl extension
Documentation
Extensive documentation for ncc can be found on at DOCUMENTATION.md, explaining how from how to build and install ncc to how to use it, it is highly recommended that you read the documentation before using ncc.
Bugs and issues
If you encounter any bugs or issues with ncc, please report them on the issue tracker.
Changelog
The changelog for ncc can be found in the CHANGELOG.md file.
Repository Mirrors
The official repository for ncc is hosted on n64; however, you can also find mirrors of the repository mirrored on different platforms, including community-powered mirrors. (more to come)
Contributing
We welcome contributions to ncc! If you have an idea for how to improve the project, please don't hesitate to reach out. There are many ways to contribute, and we appreciate all forms of support.
For more information on how to contribute, please read the CONTRIBUTING.md file.
Code of Conduct
We are committed to maintaining a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct.
Authors
- Zi Xing Narrakas (netkas) <netkas@n64.cc>
Special Thanks
- Marc Gutt (mgutt) <marc@gutt.it>
- Debusschère Alexandre (debuss)
- badPointer <https://git.n64.cc/badPointer>
- Cybersecbyte <https://git.n64.cc/Cybersecbyte>
Copyright
- Copyright (c) 2022-2023, Nosial—All Rights Reserved
Licenses
ncc is licensed under the MIT License, see LICENSE for more information. Multiple licenses for the open-source components used in this project can be found at LICENSE