A foundational Rust/Python project.
Project description
NeuroCrypt Nexus
A foundational project demonstrating a professional setup for a Rust core with Python bindings, managed with uv and maturin. This repository serves as a production-ready template for building high-performance, safe, and ergonomic Rust/Python applications.
This project is dual-licensed under the MIT and Apache-2.0 licenses.
Features
- Rust Workspace: A scalable multi-crate setup (
common,neurocrypt_core,bindings). - Python Bindings: Efficient Rust-to-Python bindings powered by
PyO3andmaturin. - Modern Python Tooling: Python environment and package management handled by the high-speed
uvtool. - Automated Quality Checks: Code formatting and linting enforced by
ruff. - Automated Testing: Unit and integration tests run with
pytest. - Continuous Integration: A GitHub Actions workflow automatically builds, lints, and tests every pull request and push to
main. - Clear Contribution Guidelines: Includes a
CONTRIBUTING.md,CODE_OF_CONDUCT.md, and a Pull Request template.
Quickstart: Build and Test
This guide will help you build the project and run the automated tests to verify your setup. For Python-specific commands, see the python/README.md.
Prerequisites
Before you begin, ensure you have the following tools installed:
- Rust Toolchain (
rustup): Official Installation Guide uvPython Installer: Official Installation Guide
Build Steps
-
Clone the repository:
git clone https://github.com/YOUR_USERNAME/NeuroCrypt-Nexus.git cd neurocrypt_nexus
-
Navigate to the Python directory:
cd python
-
Create a virtual environment:
uvwill create and manage a local.venvfor you.uv venv -
Install the project and development dependencies: This command uses
maturinto compile the Rust workspace and installs the Python package in "editable" mode.uv pip install -e .[dev]
-
Run the automated tests: After a successful installation, run the entire test suite.
uv run pytest
You should see an output indicating that all tests passed.
Project Structure
The project is a monorepo containing both the Rust and Python code.
neurocrypt_nexus/
├── .github/ # GitHub-specific files (CI workflows, PR templates)
├── crates/ # The Rust workspace root
│ ├── common/ # Shared Rust types and utilities
│ ├── neurocrypt_core/ # Core Rust logic and functionality
│ └── bindings/ # The PyO3 crate that bridges Rust and Python
├── python/ # The Python package root
│ ├── neurocrypt_nexus/ # Python source code for the package
│ ├── tests/ # Python tests
│ └── README.md # Python-specific development guide
├── .gitignore # Project-wide ignore file
├── CONTRIBUTING.md # Guide for contributing to the project
├── LICENSE-APACHE # Apache 2.0 License
├── LICENSE-MIT # MIT License
└── README.md # This file```
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md file for details on our code of conduct and the process for submitting pull requests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neurocrypt_nexus-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: neurocrypt_nexus-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 225.5 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83108ce6ac8df2f810b5cf18c59efffc9c50618026d4405c727669db3cf0cb2e
|
|
| MD5 |
da7d4e332c09203c7edf1371f3e806b1
|
|
| BLAKE2b-256 |
e7b8c33d76673e8faed463d684a42f1fce608242a022c761218901e90986417f
|