uri-template is an implementation of the URI Template proposed standard draft version 01 as a reader macro, used for both template interpolation and URI destructuring.

Examples explain the concept best:

(let ((foo 1))

=> "http://www.example.com/widget/1/parts"

(uri-template-bind (#Uhttp://www.example.com/{part}/{(#'parse-integer number)})
  (list part number %uri-host))

=> ("widget" 1 "www.example.com")

Although uri-template does not implement the operators introduced in the 02 and later drafts of the URI Template standard, it does allow arbitrary Lisp expressions in template placeholders, which gives simpler and more powerful templates.

License: BSD

Homepage: http://common-lisp.net/project/uri-template/

Author: Vladimir Sedach

Related projects: puri (URI parsing and representation) cl-uri-templates (fork of uri-template supporting operators)

cl-user.net page: http://www.cl-user.net/asp/libs/uri-template