Releases: fictive-kin/wireguard
v1.0.0
What's Changed
- Simplified peer removal by @jnhmcknight in #16
- Peer Service Interface and Config Customizability by @jnhmcknight in #17
NOTE: This release contains a breaking change as all references to .config()
need to be updated to be .config
and any custom Config
class needs to be either passed to the Peer
or Server
object at instantiation or will need to be set as .config_cls = MyCustomConfigClass
at any later point in the Peer
or Server
objects' lifecycle.
Full Changelog: v0.4.0...v1.0.0
Peer dicts + bug fixes
- Allows passing a list of peer dict info for the
peers
keyword during Peer/Server instantiation (#10) - Fixes a bug with passing a list of Pre/Post Up/Down directives, which was causing undesired nesting (#12). Thanks @UrfinJuice11 for identifying that problem.
IPv4/6 Simultaneously + JSON
What's Changed
- Allows setting the IP directly via the server subnet argument by @jnhmcknight in #5
- Built-in JSON exports by @jnhmcknight in #7
Previously, IPv4 and IPv6 weren't cleanly handled, and you could arrive at situations where one was overriding the other. This cleans that up, handling each separately, but allowing the instantiation to have them combined, as WireGuard itself has them combined within config files.
Full Changelog: v0.2.5...v0.3.0
Config output cleanup
Support for MTU and Table
Bug Fixes:
- Empty config values should not output broken directives to the WireGuard config files. af03a8f
- Keepalive was affecting the wrong config file. af03a8f
- Preshared keys were not being put in both ends of a peer configuration. af03a8f
- Not all appropriate options were being inherited by a peer in a server<->peer configuration. bd0dc73
- Tuples were not being handled correctly where lists and sets were accepted. 75cf466
Enhancements:
Better line separator handling
Bug fixes:
- Under certain conditions, generated config files might be missing some newlines which result in WireGuard syntax errors. Thanks @marneu
Enhancements:
- Be explicit about which encoding to use when writing config files
- Use
None
as default value for a method's argument and handle inside the method
Adds QR Code
When configuring a peer, for certain types of peers, it is beneficial to have a QR code to scan during the setup process. This enables that in the core library. However, it is an optional dependency, and as such must be installed via pip install wireguard[qr]
. Alternately, installing the qrcode[pil]
library will allow the functionality to be used.
Major Refactor
The object structure has been refactored to better represent the WireGuard config structure, which doesn't really have a server vs peer differentiation. Both are peers of each other.
Additionally, a Config
class has been created to simplify the Peer
and Server
classes.
Better Routing Control
Replaces use of upstream-only (ie: peer -> server) subnet routing to two values, to allow for distinct subnet routing in either direction.