Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/portal-rs/portal
Portal is a DNS implementation written in pure Rust. It provides server, client and resolver crates.
https://github.com/portal-rs/portal
dns dns-client dns-resolver dns-server rust rust-lang
Last synced: about 2 months ago
JSON representation
Portal is a DNS implementation written in pure Rust. It provides server, client and resolver crates.
- Host: GitHub
- URL: https://github.com/portal-rs/portal
- Owner: portal-rs
- Created: 2022-08-22T16:46:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-24T13:41:24.000Z (10 months ago)
- Last Synced: 2024-08-08T18:26:40.807Z (5 months ago)
- Topics: dns, dns-client, dns-resolver, dns-server, rust, rust-lang
- Language: Rust
- Homepage:
- Size: 432 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-starred - portal-rs/portal - Portal is a DNS implementation written in pure Rust. It provides server, client and resolver crates. (rust)
README
# portal
⚠️ This implementation is currently not production ready. However, it achieves to be in the future!
Portal is a DNS implementation written in pure Rust. It provides multiple crates and binaries to work with the DNS
protocol. The protocol implementation is located in these crates:- `crates/client`: A sequential and multiplexed DNS client implementation
- `crates/common`: A collection of common data types and utility functions used in other crates
- `crates/proto`: The base protocol implementation
- `crates/resolver`: Forwarding and recursive resolver implementations
- `crates/server`: A DNS server implementation---
Additionally, there are various ready-to-use binaries based on the above crates:
- `bins/pgun`: A fast terminal-based DNS query tool
- `bins/portald`: A DNS server with recursive resolving, caching, and DNS blocking\*\* Currently, the caching and DNS blocking is not fully implemented yet.
## TODOs
- Move Config code to portal-bin
- Make handlers more flexible (Generic)
- Implement a DNS multiplexer to better handle requests, responses, and transaction ids
- Split zone file loading into Lexer and Parser
- Add READMEs to crates and bins