/webbrowser-rs

Rust library to open URLs in the web browsers available on a platform

Primary LanguageRustApache License 2.0Apache-2.0

webbrowser

Current Crates.io Version Crates.io Downloads License

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

Rust library to open URLs in the web browsers available on a platform

Inspired by the webbrowser python library

Documentation

Examples

use webbrowser;

if webbrowser::open("http://github.com").is_ok() {
    // ...
}

Platform Support

Platform Supported Browsers Test status
macos default + others
windows default only
linux/*bsd default only (respects $BROWSER env var, so can be used with other browsers)
android default only
wasm default only
haiku ✅ (experimental) default only
ios default only

Consistent Behaviour

webbrowser defines consistent behaviour on all platforms as follows:

  • Non-Blocking for GUI based browsers (e.g. Firefox, Chrome etc.), while Blocking for text based browser (e.g. lynx etc.)
  • Suppressed output by default for GUI based browsers, so that their stdout/stderr don't pollute the main program's output. This can be overridden by webbrowser::open_browser_with_options.

Looking to contribute?

PRs invited for

  • Bugs
  • Supporting non-default browser invocation on any platform

Important note (while testing):

  • This library requires availability of browsers and a graphical environment during runtime
  • cargo test will actually open the browser locally

When contributing, please note that your work will be dual licensed as MIT + Apache-2.0 (see below).

License

SPDX-License-Identifier: Apache-2.0 OR MIT

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.