Contributing to IntentForge v2
Thank you for your interest in contributing to IntentForge! We are building a high-performance, privacy-first discovery engine, and we welcome contributions from developers, researchers, and designers.
Technical Stack
- Backend: Rust (Edition 2021)
- Database: Meilisearch (Search Index), Redis (Cache & Queues)
- Inference: ONNX Runtime (
ortcrate) - API: Axum
- Frontend Assets: Vanilla CSS / JavaScript
- Infrastructure: Docker & Docker Compose
Getting Started
1. Environment Setup
Clone the repository and install the necessary dependencies:
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Docker
# Install Docker and Docker Compose for your platform
2. Running for Development
Start the supporting services (Meilisearch, Redis, Microservices):
docker-compose -f docker-compose.dev.yml up -d --build
Initialize the search index:
./scripts/init_meilisearch.sh
Run the core engine with Tor support:
cargo run --features tor
Development Guidelines
Coding Standards
- Rust: Follow the official Rust Style Guide. Use
cargo fmtandcargo clippybefore submitting a PR. - Error Handling: Use
anyhowfor application-level logic andthiserrorfor library modules. - Logging: Use the
tracingcrate for structured logging. Avoidprintln!.
Branching & PRs
- Create a feature branch for your changes (e.g.,
feat/new-provider). - Ensure all tests pass with
cargo test. - Provide a clear description of your changes and why they are necessary.
Adding a New Provider
To add a new meta-search provider:
- Create a new file in
src/meta_search/providers/. - Implement the provider logic (parsing HTML/JSON responses).
- Register the provider in
src/meta_search/aggregator.rs. - Add any necessary configuration to
config.yaml.
Testing Strategy
- Unit Tests: Place in the
testsmodule at the bottom of the relevant file. - Integration Tests: Located in the
tests/directory. - Benchmarking: Use the tools in
tools/to verify performance (latency and quality).
Community & Support
Important: The organization at github.com/oxiverse-ecosystem is a mirror of the primary development repository at codeberg.org/oxiverse.
- Issues: Report bugs or suggest features via Codeberg Issues. Please do not open issues on GitHub as they may not be monitored.
- Pull Requests: Submit all contributions through Codeberg Pull Requests.
- Discussions: Use Codeberg for architectural questions or brainstorming.
We value your privacy and security. Please do not commit any secrets, API keys, or sensitive configuration files.