1个不稳定版本
0.1.0 | 2023年11月27日 |
---|
#1743 in Web编程
35KB
675 行
trustrl
URL操作工具。
这是对trurl的修改。我喜欢这个想法,一个用于操作URL的小工具,所以我用Rust重写了它。虽然我最初打算在CLI API方面进行一对一匹配,但我在过程中做了一些修改。虽然这两个工具的功能几乎相同,但它们的API略有不同。
编译
下载 Rust 并运行
cargo build --release
输出二进制文件在 ./target/release/trustrl
。
工具使用
此工具接受单个URL或包含URL列表的文件的路径。对于每个URL,它将
- 应用一系列转换。这可能包括更改方案或主机、添加新的查询字符串元素、更改端口等。
- 渲染URL。这使用了两种格式
- 类似于
端口号是 {port}
的模板字符串,它正好按预期工作。 - 将URL转换为包含URL每个组件的JSON对象。
- 类似于
例如,使用模板字符串进行渲染
$ ./trustrl http://example.com/foo?a=b -t 'the path is {path}, the port is {port}'
the path is /foo, the port is 80
以及将相同的URL作为JSON对象渲染
./trustrl http://example.com/foo?a=b -j | jq
{
"url": "http://example.com/foo?a=b",
"scheme": "http",
"host": "example.com",
"port": 80,
"path": "/foo",
"query": "a=b",
"params": [
{
"key": "a",
"value": "b"
}
]
}
转换
转换允许在每个URL中更改 某些内容。例如
$ ./trustrl example.com/foo --scheme https --port 1337 --append-path bar
https://example.com:1337/foo/bar
查看帮助以获取转换的完整列表。
模板键
模板字符串中支持的键有
- url
- scheme
- host
- port
- user
- password
- path
- query
query:parameter_name
- fragment
帮助
/trustrl -h
Usage: trustrl [OPTIONS] <URL|--urls-path <URLS_PATH>>
Arguments:
[URL] The URL to be used
Options:
--urls-path <URLS_PATH>
A path to a list of URLs to process
-t, --template <TEMPLATE>
The template to be used to render the URL [default: {url}]
-j, --to-json
Output URLs in JSON format
-s, --scheme <SCHEME>
Set the URL's scheme
-H, --host <HOST>
Set the URL's host
-P, --port <PORT>
Set the URL's port
-p, --path <PATH>
Set the URL's path
-u, --user <USER>
Set the URL's user
-S, --password <PASSWORD>
Set the URL's password
-f, --fragment <FRAGMENT>
Set the URL's fragment
-r, --redirect <REDIRECT>
Redirect the URL to a new path
-a, --append-path <APPEND_PATH>
Append a new segment at the end of the path
-q, --append-query-string <APPEND_QUERY_STRING>
Append a new query string pair, using format `<key>[=<value>]`
-c, --clear-query-string
Clear the query string
--allow-query-string <ALLOW_QUERY_STRING>
Keep the query string keys that match this regex
--deny-query-string <DENY_QUERY_STRING>
Remove the query string keys that match this regex
--sort-query-string
Sort query string
-h, --help
Print help
依赖关系
~5–7MB
~151K SLoC