34 个版本 (2 个稳定版)
1.0.1 | 2024 年 5 月 6 日 |
---|---|
0.8.15 | 2024 年 4 月 10 日 |
0.8.13 | 2024 年 3 月 5 日 |
0.8.12 | 2023 年 10 月 11 日 |
0.1.2 | 2015 年 12 月 8 日 |
#10 in 网页编程
每月下载量 273,813
在 666 个 Crates 中使用 (231 个直接使用)
76KB
1.5K SLoC
webbrowser
Rust 库,用于在平台上的网络浏览器中打开 URL 和本地文件,保证 一致性行为。
灵感来自 webbrowser Python 库
文档
示例
use webbrowser;
if webbrowser::open("http://github.com").is_ok() {
// ...
}
平台支持
平台 | 支持的 | 浏览器 | 测试状态 |
---|---|---|---|
macos | ✅ | 默认 + 其他 | ✅ |
windows | ✅ | 仅默认 | ✅ |
linux/wsl | ✅ | 仅默认 (尊重 $BROWSER 环境变量,因此可以使用其他浏览器) | ✅ |
android | ✅ | 仅默认 | ✅ |
ios/tvOS/visionOS | ✅ | 仅默认 | ✅ |
wasm | ✅ | 仅默认 | ✅ |
unix (*bsd, aix 等.) | ✅ | 仅默认 (尊重 $BROWSER 环境变量,因此可以使用其他浏览器) | 手册 |
一致性行为
webbrowser
在所有平台上定义了一致的行为,如下所示
- 浏览器保证 - 该库保证打开浏览器,即使是本地文件 - 在撰写本文时,这是唯一做出此类保证的 crate。其他库依赖于现有的系统命令,这可能导致编辑器被打开(而不是浏览器)来打开本地 html 文件,从而导致用户的不一致行为。
- 非阻塞 对于基于 GUI 的浏览器(例如 Firefox、Chrome 等),而对于基于文本的浏览器(例如 lynx 等)是 阻塞 的
- 抑制输出 默认情况下用于基于 GUI 的浏览器,因此它们的 stdout/stderr 不会污染主程序输出。这可以通过
webbrowser::open_browser_with_options
覆盖。
crate 功能
webbrowser
可选地允许配置以下功能
hardened
- 这将禁用非 http(s) url 的处理(例如file:///
),作为一项硬安全预防措施disable-wsl
- 这将禁用 WSLfile
实现(http
仍然有效)wasm-console
- 这将启用向 wasm 控制台记录日志(仅在 wasm 平台上有效)
想要贡献吗?
欢迎提交
- 错误
- 支持任何平台上非默认的浏览器调用
重要提示(在测试期间)
- 此库在运行时需要浏览器和图形环境的可用性
cargo test
实际上会在本地打开浏览器
在贡献时,请注意您的作品将按照以下方式双授权为 MIT + Apache-2.0(见下文)。
许可证
SPDX-许可证-标识符:Apache-2.0 或 MIT
许可在以下两者之一下
- Apache 许可证第 2 版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择。
贡献
除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献,如 Apache-2.0 许可证中定义,将按上述方式双授权,不附加任何其他条款或条件。
依赖
~1–11MB
~144K SLoC