:sailboat: The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
c-robinson/iplib (github.com/c-robinson/iplib)
### [`v2.0.5`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.5): 2.0.5
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.4...v2.0.5)
- add IPToBinarySlice function, by [@ryanfolsom](https://redirect.github.com/ryanfolsom)
### [`v2.0.4`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.4): 2.0.4
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.3...v2.0.4)
- Fix an overflow in `Net6.Enumerate()` on 32bit architectures
- AllNetsBetween now starts with a netmask of 0 instead of 1, so `iplib.AllNetsBetween(0.0.0.0, 255.255.255.255)` will now return a single /0 network instead of two /1's.
### [`v2.0.3`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.3): 2.0.3
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.2...v2.0.3)
- New `AllNetworksBetween()` function generates a `[]iplib.Net` of all the networks required to span two IP addresses inclusively
- Fix the behavior of `NewNetBetween()` to always consider the final address when generating a netblock Previously it would sometimes exclude this address when it should not have
- Update the godoc for `NewNetBetween()` to reflect reality. Previously the docs indicated that the generated network would be *exclusive* of both the start and end addresses which was just wrong and kind of dumb
- Fix regression where `Net6.Count()` reported zero addresses for ::/0 instead of whatever the actual gimungous number is, which was introduced during the cutover to `Uint128`
### [`v2.0.2`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.2): 2.0.2
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.1...v2.0.2)
- it is not obvious how go.mod should work for submodules, so this is another attempt to get them working correctly
- fix for small issues [golangci-lint](https://golangci-lint.run) uncovered
- appease an angry race detector for `Net6.Enumerate()` on linux (but not macos 😬) by creating local variables inside goroutines
- improve tests and add benchmarks for `Net4.Enumerate()` and `Net6.Enumerate()`
Also some repo cleanup
- abandon circleci and coveralls in favor of actions workflows against all explicitly supported versions of go, running against MacOS, Linux and Windows
### [`v2.0.1`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.1): 2.0.1
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.0...v2.0.1)
- quick fix to update `go get` invocation, example imports and documentation references to v2 in the README for iplib, iid and iana
### [`v2.0.0`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.0): 2.0.0
[Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v1.0.8...v2.0.0)
This release introduces a breaking change for IPv6 functions that take or return an integer value, including the `Hostmask` and `Net6` structs and methods. Previously these functions relied upon `*big.Int` to hold the v6 address space, but this has been replaced by `lukechampine.com/uint128`. The performance improvement for the affected functions is so significant (from 5x faster for the increment/decrement functions to a whopping 25x faster for `DeltaIP6()`) that it easily justifies the incompatibility. IPv4 functions are unaffected by this change.
It has always been a goal for this library to not rely on dependencies outside of the Go standard library and hopefully some future v3 of this library could employ an internal `uint128` type but that would require the adoption of [this proposal](https://redirect.github.com/golang/go/issues/9455) or something similar.
TLDR:
- all functions requiring or returning `*big.Int` have been rewritten to take `uint128.Uint128` instead
- new conversion functions have been created to move between IPv6 and `uint128.Uint128` (the `*big.Int` converters still remain)
- `Net6` and `Hostmask` now also take and use `uint128.Uint128`
- benchmarks, tests, examples and documentation have all been updated to reflect the change
- the top of the README temporarily calls the change out for added visibility
- added functions to convert ARPA DNS entries back to `net.IP` because, weirdly, I need to do this
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
v1.0.8
->v2.0.5
Release Notes
c-robinson/iplib (github.com/c-robinson/iplib)
### [`v2.0.5`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.5): 2.0.5 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.4...v2.0.5) - add IPToBinarySlice function, by [@ryanfolsom](https://redirect.github.com/ryanfolsom) ### [`v2.0.4`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.4): 2.0.4 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.3...v2.0.4) - Fix an overflow in `Net6.Enumerate()` on 32bit architectures - AllNetsBetween now starts with a netmask of 0 instead of 1, so `iplib.AllNetsBetween(0.0.0.0, 255.255.255.255)` will now return a single /0 network instead of two /1's. ### [`v2.0.3`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.3): 2.0.3 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.2...v2.0.3) - New `AllNetworksBetween()` function generates a `[]iplib.Net` of all the networks required to span two IP addresses inclusively - Fix the behavior of `NewNetBetween()` to always consider the final address when generating a netblock Previously it would sometimes exclude this address when it should not have - Update the godoc for `NewNetBetween()` to reflect reality. Previously the docs indicated that the generated network would be *exclusive* of both the start and end addresses which was just wrong and kind of dumb - Fix regression where `Net6.Count()` reported zero addresses for ::/0 instead of whatever the actual gimungous number is, which was introduced during the cutover to `Uint128` ### [`v2.0.2`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.2): 2.0.2 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.1...v2.0.2) - it is not obvious how go.mod should work for submodules, so this is another attempt to get them working correctly - fix for small issues [golangci-lint](https://golangci-lint.run) uncovered - appease an angry race detector for `Net6.Enumerate()` on linux (but not macos 😬) by creating local variables inside goroutines - improve tests and add benchmarks for `Net4.Enumerate()` and `Net6.Enumerate()` Also some repo cleanup - abandon circleci and coveralls in favor of actions workflows against all explicitly supported versions of go, running against MacOS, Linux and Windows ### [`v2.0.1`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.1): 2.0.1 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v2.0.0...v2.0.1) - quick fix to update `go get` invocation, example imports and documentation references to v2 in the README for iplib, iid and iana ### [`v2.0.0`](https://redirect.github.com/c-robinson/iplib/releases/tag/v2.0.0): 2.0.0 [Compare Source](https://redirect.github.com/c-robinson/iplib/compare/v1.0.8...v2.0.0) This release introduces a breaking change for IPv6 functions that take or return an integer value, including the `Hostmask` and `Net6` structs and methods. Previously these functions relied upon `*big.Int` to hold the v6 address space, but this has been replaced by `lukechampine.com/uint128`. The performance improvement for the affected functions is so significant (from 5x faster for the increment/decrement functions to a whopping 25x faster for `DeltaIP6()`) that it easily justifies the incompatibility. IPv4 functions are unaffected by this change. It has always been a goal for this library to not rely on dependencies outside of the Go standard library and hopefully some future v3 of this library could employ an internal `uint128` type but that would require the adoption of [this proposal](https://redirect.github.com/golang/go/issues/9455) or something similar. TLDR: - all functions requiring or returning `*big.Int` have been rewritten to take `uint128.Uint128` instead - new conversion functions have been created to move between IPv6 and `uint128.Uint128` (the `*big.Int` converters still remain) - `Net6` and `Hostmask` now also take and use `uint128.Uint128` - benchmarks, tests, examples and documentation have all been updated to reflect the change - the top of the README temporarily calls the change out for added visibility - added functions to convert ARPA DNS entries back to `net.IP` because, weirdly, I need to do thisConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.