com.comcast.ip4s

Type members

Classlikes

final case class AnySourceMulticastJoin[+A <: IpAddress](group: Multicast[A]) extends MulticastJoin[A]
Multicast join to a group without a source filter.
Companion
object
final class Cidr[+A <: IpAddress] extends Product with Serializable
Classless Inter-Domain Routing address, which represents an IP address and its routing prefix.
Value Params
address
IP address for which this CIDR refers to
prefixBits
number of leading 1s in the routing mask
Companion
object
object Cidr
Companion
class
trait Dns[F <: ([_$1] =>> Any)]
Capability for an effect F[_] which can do DNS lookups.
An instance is available for any effect which has a Sync instance.
Companion
object
object Dns
Companion
class
sealed trait Host extends HostPlatform with Ordered[Host]
ADT representing either an IpAddress, Hostname, or IDN.
Companion
object
object Host
Companion
class
final class Hostname extends Host
RFC1123 compliant hostname.
A hostname contains one or more labels, where each label consists of letters A-Z, a-z, digits 0-9, or a dash.
A label may not start or end in a dash and may not exceed 63 characters in length. Labels are separated by
periods and the overall hostname must not exceed 253 characters in length.
Companion
object
object Hostname
Companion
class
final class IDN extends Host
Internationalized domain name, as specified by RFC3490 and RFC5891.
This type models internationalized hostnames. An IDN provides unicode labels, a unicode string form,
and an ASCII hostname form.
A well formed IDN consists of one or more labels separated by dots. Each label may contain unicode characters
as long as the converted ASCII form meets the requirements of RFC1123 (e.g., 63 or fewer characters and no
leading or trailing dash). A dot is represented as an ASCII period or one of the unicode dots: full stop,
ideographic full stop, fullwidth full stop, halfwidth ideographic full stop.
The toString method returns the IDN in the form in which it was constructed. Sometimes it is useful to
normalize the IDN -- converting all dots to an ASCII period and converting all labels to lowercase.
Note: equality and comparison of IDNs is case-sensitive. Consider comparing normalized toString values
for a more lenient notion of equality.
Companion
object
object IDN extends IDNCompanionPlatform
Companion
class
sealed abstract class IpAddress extends IpAddressPlatform with Host with Serializable
Immutable and safe representation of an IP address, either V4 or V6.
=== Construction ===
IpAddress instances are constructed in a few different ways:
- via IpAddress("127.0.0.1"), which parses a string representation of the IP and returns an Option[IpAddress]
- via IpAddress.fromBytes(arr), which returns an IP address if the supplied array is either exactly 4 bytes or exactly 16 bytes
- via literal syntax like ip"127.0.0.1", which returns an IpAddress and fails to compile if the IP is invalid.
=== Type Hierarchy ===
There are two subtypes of IpAddress -- Ipv4Address and Ipv6Address. Each of these subtypes have a richer
API than IpAddress and it is often useful to use those types directly, for example if your use case requires a V6 address.
It is safe to pattern match on IpAddress to access Ipv4Address or Ipv6Address directly, or alternatively, you can use fold.
=== JVM Specific API ===
If using IpAddress on the JVM, you can call toInetAddress to convert the address to a java.net.InetAddress, for use
with networking libraries. This method does not exist on the Scala.js version.
Companion
object
object IpAddress extends IpAddressCompanionPlatform
Companion
class
sealed trait IpVersion
Companion
object
object IpVersion
Companion
class
final class Ipv4Address extends IpAddress with Ipv4AddressPlatform
Representation of an IPv4 address that works on both the JVM and Scala.js.
Companion
object
object Ipv4Address extends Ipv4AddressCompanionPlatform
Companion
class
final class Ipv6Address extends IpAddress with Ipv6AddressPlatform
Representation of an IPv6 address that works on both the JVM and Scala.js.
Companion
object
object Ipv6Address extends Ipv6AddressCompanionPlatform
Companion
class
object Literals
sealed trait Multicast[+A <: IpAddress] extends Product with Serializable
Witness that the wrapped address of type A is a multicast address.
An instance of Multicast is typically created by either calling Multicast.apply or by using
the asMulticast method on IpAddress.
Companion
object
object Multicast
Companion
class
sealed abstract class MulticastJoin[+A <: IpAddress] extends Product with Serializable
Represents a join of a multicast group.
This is represented as an ADT consisting of two constructors, AnySourceMulticastJoin and
SourceSpecificMulticastJoin. These constructors are provided as top level types to allow
domain modeling where a specific join type is required. The address type is parameterized for
a similar reason -- to allow domain modeling where a specific address type is required.
Companion
object
Companion
class
final case class MulticastSocketAddress[J <: ([x <: IpAddress] =>> MulticastJoin[x]), +A <: IpAddress](join: J[A], port: Port)
A multicast join of the specified type and a port number. Used to describe UDP join of a multicast group.
Companion
object
final class Port extends Product with Serializable with Ordered[Port]
TCP or UDP port number.
Companion
object
object Port
Companion
class
final case class SocketAddress[+A <: Host](host: A, port: Port) extends SocketAddressPlatform[A]
An IP address of the specified type and a port number. Used to describe the source or destination of a socket.
Companion
object
object SocketAddress extends SocketAddressCompanionPlatform
Companion
class
sealed trait SourceSpecificMulticast[+A <: IpAddress] extends Multicast[A]
Witnesses that the wrapped address of type A is a source specific multicast address.
An instance of SourceSpecificMulticast is typically created by either calling Multicast.apply
or by using the asSourceSpecificMulticast method on IpAddress.
Companion
object
final case class SourceSpecificMulticastJoin[+A <: IpAddress](source: A, group: SourceSpecificMulticast[A]) extends MulticastJoin[A]
Multicast join to a group from the specified source.
Companion
object

Extensions

Extensions

extension (ctx: StringContext)
inline def host(inline args: Any*): Hostname
extension (ctx: StringContext)
inline def port(inline args: Any*): Port
extension (ctx: StringContext)
inline def mipv4(inline args: Any*): Multicast[Ipv4Address]
extension (ctx: StringContext)
inline def ssmip(inline args: Any*): SourceSpecificMulticast[IpAddress]
extension (ctx: StringContext)
inline def mipv6(inline args: Any*): Multicast[Ipv6Address]
extension (ctx: StringContext)
inline def ssmipv6(inline args: Any*): SourceSpecificMulticast[Ipv6Address]
extension (ctx: StringContext)
inline def idn(inline args: Any*): IDN
extension (ctx: StringContext)
inline def ip(inline args: Any*): IpAddress
extension (ctx: StringContext)
inline def mip(inline args: Any*): Multicast[IpAddress]
extension (ctx: StringContext)
inline def ssmipv4(inline args: Any*): SourceSpecificMulticast[Ipv4Address]
extension (ctx: StringContext)
inline def ipv6(inline args: Any*): Ipv6Address
extension (ctx: StringContext)
inline def ipv4(inline args: Any*): Ipv4Address