psl 🎃🌶️☕

Package VersionHex Docs

A Gleam package for parsing domain names into their component parts using the Public Suffix List.

Inspired by publicsuffix-ruby.

Installation

Add psl to your Gleam project:

gleam add psl

Usage

import psl
pub fn main() {
// Parse a simple domain
let assert Ok(parts) = psl.parse("https://gleam.run")
// parts.transit_routing_domain -> ""
// parts.second_level_domain -> "gleam"
// parts.top_level_domain -> "run"
// parts.subdomain_parts -> []
// Parse a domain with a subdomain
let assert Ok(parts) = psl.parse("https://packages.gleam.run")
// parts.transit_routing_domain -> "packages"
// parts.second_level_domain -> "gleam"
// parts.top_level_domain -> "run"
// parts.subdomain_parts -> ["packages"]
let assert Ok(parts) = psl.parse("https://fun.packages.gleam.run")
// parts.transit_routing_domain -> "fun.packages"
// parts.second_level_domain -> "gleam"
// parts.top_level_domain -> "run"
// parts.subdomain_parts -> ["fun", "packages"]
}

Credits

Licence

Apache-2.0