2 releases
0.1.1 | Dec 21, 2024 |
---|---|
0.1.0 | Dec 21, 2024 |
#1712 in Network programming
206 downloads per month
18KB
275 lines
RustDNS
RustDNS [WIP] is an open-source, lightweight, high-performance DNS server implementation in Rust. It provides a simple yet powerful solution for handling DNS queries and managing DNS records.
Installation
Add rust-dns to your project using cargo:
cargo add rust-dns
Or add it manually to your Cargo.toml
:
[dependencies]
rust-dns = "0.1.1"
Features
- Fast and efficient DNS query parsing and handling
- Support for IPv4 and IPv6 address resolution
- Multithreaded architecture for optimal performance
- Configurable caching mechanism
- Extensible plugin system for custom record types
- Comprehensive logging and monitoring
- Easy-to-use API for programmatic DNS record management
Prerequisites
- Rust 1.56.0 or later
Quick Start
use rust_dns::{DnsServer, DnsRecord};
fn main() -> std::io::Result<()> {
// Create a new DNS server instance
let server = DnsServer::new("127.0.0.1:5300")?;
// Run the server
server.run()
}
CLI Usage
Run the DNS server:
rust-dns run --address 127.0.0.1:5300
Add a DNS record:
rust-dns add example.com A 93.184.216.34 --ttl 3600
Building from Source
- Clone the repository:
git clone https://github.com/dinxsh/rdns.git
cd rdns
- Build the project:
cargo build --release
Documentation
For detailed documentation, please visit docs.rs/rust-dns.
Contributing
We welcome contributions to RustDNS! Here are some ways you can contribute:
- Report bugs and suggest features by opening issues
- Submit pull requests to fix issues or add new features
- Improve documentation
- Share your experience and help others in discussions
Please see our Contributing Guide for more details on how to get started.
Code of Conduct
We are committed to providing a friendly, safe, and welcoming environment for all contributors. Please read and follow our Code of Conduct.
License
RustDNS is licensed under the MIT License. See the LICENSE file for details.
Contact
If you have any questions or need support, please open an issue on GitHub or reach out to the maintainers.
Dependencies
~1.5MB
~24K SLoC