Package options

\newitem
Package Option: obeyspaces
Ordinarily, all spaces are ignored in the url-text. The “[obeyspaces]” option allows spaces, but may introduce spurious spaces when a url containing “\cs” characters is given in the argument to another command. So if you need to obey spaces you can say “\csusepackage[obeyspaces]{url}”, and if you need both spaces and backslashes, use a defined-url.
\newitem
Package Option: hyphens
Ordinarily, breaks are not allowed after “-” characters because this leads to confusion. (Is the “-” part of the address or just a hyphen?) The package option “[hyphens]” allows breaks after explicit hyphen characters. The \csurl command will never ever hyphenate words.
\newitem
Package Option: spaces
Likewise, given the “[obeyspaces]” option, breaks are not usually allowed after the spaces, but if you give the options “[obeyspaces,spaces]”, \csurl will allow breaks at those spaces.
Note that it seems logical to allow the sole option “[spaces]” to let input spaces indicate break points, but not to display them in the output. This would be easy to implement, but is left out to avoid(?) confusion.
\newitem
Package Option: lowtilde
Normal treatment of the ~ character is to use the font’s “\cstextasciitilde” character, if it has one (or claims to). Otherwise, the character is faked using a mathematical “\cssim”. The “[lowtilde]” option causes a faked character to be used always (and a bit lower than usual).
\newitem
Package Option: allowmove
This option suppresses the test for \csurl being used in a so-called moving argument (check “fragile command”). Using it will enable \csurl to function in more contexts, but when it does fail, the error message may be incomprehensible.