Releases: Wilfried-Tech/sidedns
Releases · Wilfried-Tech/sidedns
v0.1.1
Immutable
release. Only release title and notes can be modified.
feat: add GitHub Actions workflow for publishing to crates.io feat(cli): add `is_superuser` checks for privileged operations fix(cargo): update package versions to 0.1.1 and adjust workspace configuration fix(cli): kill child process on port detection failure fix(ipc): improve logging messages for rule additions and removals fix(release.yml): set correctly changelog output and update version extract command This commit introduces a GitHub Actions workflow that automatically publishes the project to crates.io upon a new release. It also adds `is_superuser` checks to various CLI commands (`cert install --trust`, `cert uninstall`, `cert trust`, `cert untrust`, `daemon start`) to ensure that privileged operations are only performed by a root/administrator user, preventing potential permission issues and improving security. The `Cargo.toml` files have been updated to set the package versions to `0.1.1` and adjust the workspace configuration to remove the top-level package from the `members` list, as it's not a library. The `run` command in the CLI now correctly kills the child process if port detection fails, preventing orphaned processes. Logging messages for adding and removing DNS rules in the IPC handler have been improved to include the rule itself, providing more context in the logs. Additionally, the `sidedns-cli` package now has a `[[bin]]` section to explicitly define its binary, and the main `sidedns` package now depends on `sidedns-cli` with an exact version. The `is_superuser` crate has been added as a dependency.
v0.1.0
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.