Hi all,
I'm pleased to announce my first Julia package, IPNets, available at
https://github.com/sbromberger/IPNets.jl. This package creates types for
memory-efficient representation of IPv4 and IPv6 networks, and provides
common operators for accessing/using them. IPNets.jl takes advantage of the
IPAddr types already built into Base.
A few usage examples (more in the README):
julia> ip4net = IPv4Net("1.2.3.0/24")
IPv4Net("1.2.3.0/24")
julia> ip4 = IPv4("1.2.3.4")
ip"1.2.3.4"
julia> ip4 in ip4net
true
julia> newnet = IPv4Net("1.2.3.16", "255.255.255.240") # alternate constructor
IPv4Net("1.2.3.16/28")
julia> newnet ⊆ ip4net
true
julia> length(ip4net)
256
julia> ip4net[5] == ip4
true
julia> extrema(ip4net)
(ip"1.2.3.0",ip"1.2.3.255")
Feedback appreciated. Please note the known issues at the bottom of the
README. As this is still a work in progress, more methods are anticipated.
Seth.