Skip to main content

A foundational Rust/Python project.

Project description

NeuroCrypt Nexus

Continuous Integration

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 PyO3 and maturin.
  • Modern Python Tooling: Python environment and package management handled by the high-speed uv tool.
  • 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:

  1. Rust Toolchain (rustup): Official Installation Guide
  2. uv Python Installer: Official Installation Guide

Build Steps

  1. Clone the repository:

    git clone https://github.com/YOUR_USERNAME/NeuroCrypt-Nexus.git
    cd neurocrypt_nexus
    
  2. Navigate to the Python directory:

    cd python
    
  3. Create a virtual environment: uv will create and manage a local .venv for you.

    uv venv
    
  4. Install the project and development dependencies: This command uses maturin to compile the Rust workspace and installs the Python package in "editable" mode.

    uv pip install -e .[dev]
    
  5. 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


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

neurocrypt_nexus-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl (225.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

File details

Details for the file neurocrypt_nexus-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for neurocrypt_nexus-0.1.3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 83108ce6ac8df2f810b5cf18c59efffc9c50618026d4405c727669db3cf0cb2e
MD5 da7d4e332c09203c7edf1371f3e806b1
BLAKE2b-256 e7b8c33d76673e8faed463d684a42f1fce608242a022c761218901e90986417f

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