NyxJ is a high-performance, lightweight JSON processing engine and micro-service framework written in pure C. Designed for embedded systems, system-level tools, and high-concurrency micro-services, NyxJ provides a robust bridge between low-level system operations and high-level web interfaces.
- Efficient JSON Parsing: Specialized tree-based parsing for structured data extraction.
- Zero-Dependency Core: The core engine is written in standard C for maximum portability.
- Multi-Platform Support: Native compilation for Windows (x64), Linux (x86_64, ARM64), and macOS (Apple Silicon).
- Integrated Micro-service Layer: Powered by the Mongoose networking library to provide high-speed HTTP API capabilities.
- Memory Safety: Strict allocation management and error handling to prevent leaks and segmentation faults.
src/: Core engine implementation and server logic.include/: Public headers and API definitions.vendor/: Third-party dependencies (Mongoose).examples/: Implementation demonstrations including API services and client-side testing.tests/: Unit and integration testing suites.
- GCC or Clang compiler.
- Make (optional, for automation).
- Windows users: MinGW-w64 (via w64devkit) is recommended for POSIX compatibility.
-
Clone the repository:
git clone https://github.com/fomadev/nyxj.git cd nyxj -
Compile the main server:
make
-
Run the micro-service:
./nyxj_server
The NyxJ micro-service listens on port 8000 by default.
Endpoint: POST /api/data
Content-Type: application/json
Example Request:
{
"status": "request",
"payload": "NyxJ Engine Test"
}Example Response:
{
"status": "success",
"engine": "NyxJ v1.0.0",
"message": "Data processed successfully"
}NyxJ is designed to be compiled across various environments.
gcc src/server.c src/core/parser.c vendor/mongoose/mongoose.c -Iinclude -Ivendor/mongoose -o nyxj_server -lpthreadgcc src/server.c src/core/parser.c vendor/mongoose/mongoose.c -Iinclude -Ivendor/mongoose -o nyxj_server.exe -lws2_32gcc src/server.c src/core/parser.c vendor/mongoose/mongoose.c -Iinclude -Ivendor/mongoose -o nyxj_serverNyxJ is maintained by FomaDev. Contributions related to performance optimization, new JSON serialization methods, or additional networking protocols are welcome.
-
Fork the repository.
-
Create a feature branch (
git checkout -b feature/Optimization). -
Commit your changes (
git commit -m 'Add performance fix'). -
Push to the branch (
git push origin feature/Optimization). -
Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
@fordimalanda