Change Log🔗
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.0.0 - 2025-07-11🔗
Tip
Version 3.0.0
represents a large incompatible refactor of nserver
with version 2.0.0
considered a "misfire". If you have been using functionality from 2.0.0
or the development branch you should expect a large number of breaking changes.
Added🔗
- Add Python 3.13 support
- Generalised CLI interface for running applications; see
nserver --help
.- Implemented in
nserver.cli
.
- Implemented in
nserver.application
classes that focus on running a given server instance.- This lays the ground work for different ways of running servers in the future; e.g. using threads.
nserver.server.RawNameServer
that handlesRawMiddleware
including exception handling.
Removed🔗
- Drop Python 3.7 support
nserver.server.SubServer
has been removed.NameServer
instances can now be registered to otherNameServer
instances.
Changed🔗
- Refactored
nserver.server.NameServer
- "Raw" functionality has been removed. This has been moved to the
nserver.server.RawNameServer
. - "Transport" and other related "Application" functionality has been removed from
NameServer
instances. This has moved to thenserver.application
classes. NameServer
instances can now be registered to other instances. This replacesSubServer
functionality that was in development.
- "Raw" functionality has been removed. This has been moved to the
- Refactoring of
nserver.server
andnserver.middleware
classes. NameServer
name
argument / attribute is no longer used when creating the logger.
Fixed🔗
- Uncaught errors from dropped connections in
nserver.transport.TCPv4Transport
#6
Development Changes🔗
- Development tooling has moved to
uv
.- The tooling remains wrapped in
dev.sh
. - This remove the requirement for
docker
in local development.
- The tooling remains wrapped in
- Test suite added to GitHub Actions.
- Added contributing guidelies.
2.0.0 - 2023-12-20🔗
- Implement Middleware
- This includes adding error handling middleware that facilitates error handling.
- Add
StaticRule
andZoneRule
. - Refector
NameServer.rule
to use expandedsmart_make_rule
function.- Although this change should not affect rules using this decorator from being called correctly, it may change the precise rule type being used. Specifically it may use
StaticRule
instead ofWildcardStringRule
for strings with no substitutions.
- Although this change should not affect rules using this decorator from being called correctly, it may change the precise rule type being used. Specifically it may use
- Add Blueprints
- Include refactoring
NameServer
into a new shared basedScaffold
class.
- Include refactoring
1.0.0 - 2023-11-03🔗
- Beta release