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 网页编程

Download history 57039/week @ 2024-05-01 53796/week @ 2024-05-08 56063/week @ 2024-05-15 58026/week @ 2024-05-22 61552/week @ 2024-05-29 60162/week @ 2024-06-05 57437/week @ 2024-06-12 55804/week @ 2024-06-19 57641/week @ 2024-06-26 58815/week @ 2024-07-03 60834/week @ 2024-07-10 63138/week @ 2024-07-17 62719/week @ 2024-07-24 62966/week @ 2024-07-31 68212/week @ 2024-08-07 68025/week @ 2024-08-14

每月下载量 273,813
666 个 Crates 中使用 (231 个直接使用)

MIT/Apache

76KB
1.5K SLoC

webbrowser

Current Crates.io Version Crates.io Downloads License

Linux Build Windows Build MacOS Build iOS Build Android Build WASM Build

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 - 这将禁用 WSL file 实现(http 仍然有效)
  • wasm-console - 这将启用向 wasm 控制台记录日志(仅在 wasm 平台上有效)

想要贡献吗?

欢迎提交

  • 错误
  • 支持任何平台上非默认的浏览器调用

重要提示(在测试期间)

  • 此库在运行时需要浏览器和图形环境的可用性
  • cargo test 实际上会在本地打开浏览器

在贡献时,请注意您的作品将按照以下方式双授权为 MIT + Apache-2.0(见下文)。

许可证

SPDX-许可证-标识符:Apache-2.0 MIT

许可在以下两者之一下

您可选择。

贡献

除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献,如 Apache-2.0 许可证中定义,将按上述方式双授权,不附加任何其他条款或条件。

依赖

~1–11MB
~144K SLoC