Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

slimDNS

A simple DNS server written in vanilla Python.

Installation

pip install slimDNS

or simply git clone this repository.

Minimal example

import slimDNS

dns = slimDNS.server(slimDNS.UDP)

dns.run()

This would host a DNS server without any records.
There's two ways you can add records:

Swap out all records via annotation

@dns.records
def records(server):
	return {
		"example.com" : {
			"A" : {"target" : "264.30.198.2", "ttl" : 60},
			"SOA" : {"target" : "example.com", "ttl" : 60},
			"NS" : {"target" : "example.com", "ttl" : 60, "priority" : 10}
		},
		"nas.example.com" : {
			"A" : {"target" : "264.30.198.2", "type" : "A", "ttl" : 60}
		},
		"_matrix._tcp.riot.example.com" : {
			"SRV" : {"ttl" : 60, "priority" : 10, "port" : 8448, "target" : "nas.example.com"}
		}

	}

Which would swap out all current records for the defined set of records.

Add, delete and update records

dns.remove('example.com', 'A')
dns.add('example.com', 'A', '264.30.198.1')
dns.update('example.com', 'A', '264.30.198.5')

Which would remove the A record example.com,
Then add a new similar one with a new UP and
finally update that new record with a new IP.

Note

Requires Python 3.8+ & Linux (not tested on other platforms).

Release files for slimDNS 1.0.0rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slimDNS 1.0.0rc2
File Size Uploaded
slimDNS-1.0.0rc2.tar.gz 2.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slimDNS 1.0.0rc2
File Interpreter ABI Platform
slimDNS-1.0.0rc2-py3-none-any.whl Python 3 none any Details

Total release size: 4.6 kB

Release files / slimDNS-1.0.0rc2.tar.gz

Download URL slimDNS-1.0.0rc2.tar.gz
Size 2.4 kB
Tags Source
SHA-256 checksum
How to use checksums
950ff83af10aa1c3274ff99332f20f236f9c0874dcf07027b15077ab28ac59c9
BLAKE2b-256 checksum
How to use checksums
76edbe9246bed8164ef7d995ab982cb73084d64e06e2408e8a516954ce385710
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

Release files / slimDNS-1.0.0rc2-py3-none-any.whl

Download URL slimDNS-1.0.0rc2-py3-none-any.whl
Size 2.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
330a34f886506b15584d6c556dd30e272e21989088139f3c5d261f6a37c4df00
BLAKE2b-256 checksum
How to use checksums
bb3b8c8709e368c0dac8bdcb81061e0f2c1bf3c7715166681ac4ee8ab38272d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.0

Release history Release notifications | RSS feed

This release

1.0.0rc2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page