No description
Find a file
2026-03-21 16:28:48 +05:30
common_utils feat: use monorepo structure for devenv 2026-01-27 19:51:11 +05:30
db_utils feat: bootstrap record.dns aggregate 2026-03-18 17:25:19 +05:30
dns feat: remove record service,cmd,event&tests 2026-03-21 16:23:34 +05:30
LICENSES feat: init neo workspace 2025-11-10 16:07:57 +05:30
shared chore: update devenv 2026-03-21 14:38:08 +05:30
src feat: init neo workspace 2025-11-10 16:07:57 +05:30
tasker feat: define and provide default cleanup impl 2026-02-17 17:35:59 +05:30
.envrc feat: aggregate migrations from workspaces & run migrations via db_utils 2026-03-06 16:00:06 +05:30
.gitignore feat: use monorepo structure for devenv 2026-01-27 19:51:11 +05:30
Cargo.lock chore: cleanup test scaffolding 2026-03-17 13:05:44 +05:30
Cargo.toml feat: impl GetZoneList for dns 2026-03-10 16:10:23 +05:30
devenv.lock feat: use monorepo structure for devenv 2026-01-27 19:51:11 +05:30
devenv.nix feat: use monorepo structure for devenv 2026-01-27 19:51:11 +05:30
devenv.yaml feat: use monorepo structure for devenv 2026-01-27 19:51:11 +05:30
Makefile feat: init neo workspace 2025-11-10 16:07:57 +05:30
README.md feat: decouple DNS server impl into traits and server-specific impl 2025-11-20 13:57:23 +05:30
renovate.json Add renovate.json 2025-11-17 00:19:27 +00:00

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.

Crate Description
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 .app don'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.
dns/dnsserver/libdnsserver Library defining traits for LibrePages to work with a DNS server
dns/dnsserver/libbind9 bind9 implementation of libdnsserver

Development Requirements

  1. Nightly Rust (rustc 1.92.0-nightly (6501e64fc 2025-10-23))
  2. docker: optional, for dev dependencies like Postures)
  3. 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.