DocsIntentforgecontributing

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 (ort crate)
  • 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 fmt and cargo clippy before submitting a PR.
  • Error Handling: Use anyhow for application-level logic and thiserror for library modules.
  • Logging: Use the tracing crate for structured logging. Avoid println!.

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:

  1. Create a new file in src/meta_search/providers/.
  2. Implement the provider logic (parsing HTML/JSON responses).
  3. Register the provider in src/meta_search/aggregator.rs.
  4. Add any necessary configuration to config.yaml.

Testing Strategy

  • Unit Tests: Place in the tests module 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.