Skip to content

lfe-http/yuri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yuri

Build Status LFE Versions Erlang Versions Tags

Project Logo

An LFE library for working with URIs

About

This library is serves a handful of purposes:

  • provides additional parsing of URI data on top of what the Erlang uri_string library already does;
  • does conversions for bytestring URIs
  • provides a URI encode function
  • wraps some basic uri_string functions (like parse) for convenience

Build

rebar3 lfe compile

Tests

rebar3 as test ltest

Usage

lfe> (set parsed (yuri:parse "https://alice.roberts:sekr1t@example.tld/some/path?a=1&b=2#name"))
#M(port #"" scheme #"https" path #"/some/path" host #"example.tld"
   userinfo #"alice.roberts:sekr1t" query #"a=1&b=2" fragment #"name")

lfe> (yuri.path:->segments parsed)
(#"some" #"path")
lfe> (yuri.path:->segments "/some/path")
(#"some" #"path")
lfe> (yuri.path:->segments #"/some/path")
(#"some" #"path")

lfe> (set query (yuri.query:parse parsed))
#M(#"a" #"1" #"b" #"2")
lfe> (mref query #"b")
#"2"

lfe> (set userinfo (yuri.user:parse parsed))
#M(user #"alice.roberts" password #"sekr1t")
lfe> (mref userinfo 'user)
#"alice.roberts"

License

Apache License, Version 2.0

Copyright © 2023, Duncan McGreggor oubiwann@gmail.com.