--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_uri.h>
+
+module Bindings.APR.URI where
+#strict_import
+import Bindings.APR.ErrNo
+import Bindings.APR.Network.IO
+import Bindings.APR.Pools
+
+#num APR_URI_FTP_DEFAULT_PORT
+#num APR_URI_SSH_DEFAULT_PORT
+#num APR_URI_TELNET_DEFAULT_PORT
+#num APR_URI_GOPHER_DEFAULT_PORT
+#num APR_URI_HTTP_DEFAULT_PORT
+#num APR_URI_POP_DEFAULT_PORT
+#num APR_URI_NNTP_DEFAULT_PORT
+#num APR_URI_IMAP_DEFAULT_PORT
+#num APR_URI_PROSPERO_DEFAULT_PORT
+#num APR_URI_WAIS_DEFAULT_PORT
+#num APR_URI_LDAP_DEFAULT_PORT
+#num APR_URI_HTTPS_DEFAULT_PORT
+#num APR_URI_RTSP_DEFAULT_PORT
+#num APR_URI_SNEWS_DEFAULT_PORT
+#num APR_URI_ACAP_DEFAULT_PORT
+#num APR_URI_NFS_DEFAULT_PORT
+#num APR_URI_TIP_DEFAULT_PORT
+#num APR_URI_SIP_DEFAULT_PORT
+
+#num APR_URI_UNP_OMITSITEPART
+#num APR_URI_UNP_OMITUSER
+#num APR_URI_UNP_OMITPASSWORD
+#num APR_URI_UNP_OMITUSERINFO
+#num APR_URI_UNP_REVEALPASSWORD
+#num APR_URI_UNP_OMITPATHINFO
+#num APR_URI_UNP_OMITQUERY
+
+#starttype struct apr_uri_t
+# field scheme , Ptr CChar
+# field hostinfo, Ptr CChar
+# field user , Ptr CChar
+# field password, Ptr CChar
+# field hostname, Ptr CChar
+# field port_str, Ptr CChar
+# field path , Ptr CChar
+# field query , Ptr CChar
+# field fragment, Ptr CChar
+-- FIXME: struct hostent
+-- # field hostent , Ptr <hostent>
+# field port , <apr_port_t>
+-- FIXME: bit fields
+-- # field is_initialized, CUInt
+-- # field dns_looked_up , CUInt
+-- # field dns_resolved , CUInt
+#stoptype
+
+#ccall apr_uri_port_of_scheme, Ptr CChar -> IO <apr_port_t>
+#ccall apr_uri_unparse , Ptr <apr_pool_t> -> Ptr <apr_uri_t> -> CUInt -> IO (Ptr CChar)
+#ccall apr_uri_parse , Ptr <apr_pool_t> -> Ptr CChar -> Ptr <apr_uri_t> -> IO <apr_status_t>
+#ccall apr_uri_parse_hostinfo, Ptr <apr_pool_t> -> Ptr CChar -> Ptr <apr_uri_t> -> IO <apr_status_t>