Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 19:17
· 1 commit to master since this release
feat: introduce SideDNS project structure and core functionalities

This commit introduces the initial project structure for SideDNS, a local DNS router and transparent HTTP/HTTPS proxy. It sets up the core daemon logic, CLI, and essential configurations.

Key changes include:
- **Project Initialization**: Creates `Cargo.toml` for the main workspace and individual crates (`core`, `cli`).
- **Core Crate (`core`)**:
 - Defines `DnsRule` for routing configuration.
 - Implements `RuleStore` for managing DNS rules with `arc-swap` for concurrent access.
 - Sets up `certs` module for CA generation, certificate signing, and trust store management (system, NSS, Java).
 - Introduces `dns` module with `DomainResolver` and `DnsHandler` for local DNS resolution and forwarding.
 - Implements `ipc` module for inter-process communication between the CLI/GUI and the daemon.
 - Adds `proxy` module for HTTP/HTTPS reverse proxying with WebSocket support.
 - Establishes `logging` for structured logging.
 - Defines `config` constants for application-wide settings (ports, paths, regex).
 - Implements the main `runner` function to orchestrate daemon components.
- **CLI Crate (`cli`)**:
 - Defines CLI commands using `clap` for `add`, `remove`, `list`, `resolve`, `daemon`, `run`, `status`, `watch`, `cert`, and `clean` actions.
 - Implements command handlers that interact with the core daemon via IPC.
 - Includes logic for daemon lifecycle management (start, stop, backgrounding).
 - Adds port auto-detection for the `run` command.
- **GitHub Workflows**:
 - Introduces `ci.yml` for linting, testing across platforms, and code coverage.
 - Adds `release.yml` for automated releases, including changelog generation, multi-platform binary builds, and publishing to `crates.io`.
- **Documentation and Configuration**:
 - Creates `README.md` with project overview, features, architecture, installation, and command reference.
 - Adds `CONTRIBUTING.md` with guidelines for contributing, development setup, coding standards, and commit conventions.
 - Includes `SECURITY.md` for vulnerability reporting.
 - Sets up `cliff.toml` for automated changelog generation.
 - Adds `.gitignore` and `rustfmt.toml` for code quality and consistency.

This commit lays the foundation for a robust local DNS routing and proxying tool, enabling developers to manage local domains and services efficiently.