No description
|
|
||
|---|---|---|
| common_utils | ||
| db_utils | ||
| dns | ||
| LICENSES | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| devenv.lock | ||
| devenv.nix | ||
| devenv.yaml | ||
| Makefile | ||
| README.md | ||
| renovate.json | ||
Neo
An attempt to re-write a incomplete implementation
Workspaces (components)
This repository is divided into multiple cargo workspaces (essentially multiple crates) for faster compilation and better reusability.
- common_utils: utilities to work with CQRS. Might be used by other workspaces.
- db_utils: Database utilities to create, and drop databases. Also contains an implementation with the sqlx (postgres) crate.
- dns: LibrePages' DNS component. Create zones, and manage records.
- dns/libwhois: fetch WHOIS data from IANA > TLD
authoritative WHOIS server > Registrar's WHOIS server. Runs on
best-effort basis, since some TLDs (like
.appdon't publish WHOIS records) - dns/migrations/libmigrator: Database migrations for the dns crate. Bakes in migrations using the SQLx macro. Also contains the general CQRS events table that cqrs-es crate requires.
- dns/migrations/migrator: CLI tool to run dns crate's migrations. Uses dns/migrations/libmigrator under the hood. Used for development to set up environments.
Development Requirements
- Nightly Rust (
rustc 1.92.0-nightly (6501e64fc 2025-10-23)) - docker: optional, for dev dependencies like Postures)
- devenv, direnv via the nix-shell: optional, easy environment management
Note: A new version of Nightly Rust toolchain is released every **cough** every night. This repository is pinned to a certain version (see above) of the compiler. A later version MAY produce compilation errors, that might be rectified in the following night's toolchain release.