The native part of the PWAsForFirefox project.
The native part is written in Rust and handles the parts that the extension cannot do alone. This includes installing Firefox runtime, patching it with the chrome modifications, installing the sites, and launching them. This can be done via the firefoxpwa
console program, or via the browser extension that connects with this program using native messaging protocol for easier use.
The native part also contains browser chrome (UI) modifications written in JS and CSS to make the browser work as a standalone PWA: Hiding tab and address bar, re-arranging widgets, handling the web app scope, and applying system integration.
Read the main README file for more details about the project.
- Windows (pre-built MSI installer)
- Debian-like Linux (pre-built DEB package)
- Red Hat-like Linux (pre-built RPM package)
- Arch-like Linux (source and binary AUR packages)
- Gentoo-like Linux (GURU ebuild)
- NixOS Linux (nixpkgs package)
- Other Linux (source installation only)
- macOS (bottled Homebrew formula)
- BSD (source installation only)
- Windows: Visual C++ Redistributable
- macOS: Xcode Command Line Tools
- Linux:
glibc
2.18 or later
The DEB and RPM packages are hosted on the packagecloud.io repository. You can enable this repository and install packages from there if you prefer to manage PWAsForFirefox updates using your system package manager.
Thanks to packagecloud.io for sponsoring this project and providing us a free hosting for our DEB and RPM packages!
- Windows Package Manager:
filips.FirefoxPWA
- Chocolatey:
firefoxpwa
- Npackd:
firefoxpwa
- Scoop:
extras/firefoxpwa
- Homebrew:
firefoxpwa
- Arch User Repository:
firefox-pwa
(source) - Arch User Repository:
firefox-pwa-bin
(pre-built) - Gentoo GURU:
www-plugins/firefoxpwa
- Nixpkgs Unstable:
firefoxpwa
Note
If you want to package PWAsForFirefox for your distribution or package manager, or have already packaged it, please let me know, so I can help with the packaging and list it in the installation instructions. If the packaging platform supports any auto-submission/uploading feature, please also let me know, as I might integrate it directly with GitHub Actions to make sure the packages are always up-to-date.
You can download installers/packages and the shell completions from the latest GitHub release.
You can download and install the latest build artifact from GitHub Actions builds. Note that these are development versions that may be unstable.
First, you will need make sure you have the following tools installed:
- Git
- Rust
cargo-make
- Windows-only: WiX Toolset v3
You can then run the following commands to build and install it using cargo-make
:
# Clone the repository and switch into the correct directory
git clone https://github.com/filips123/PWAsForFirefox.git
cd PWAsForFirefox/native
# If building a specific version
# Set the VERSION environment variable
# And run the following commands to set version
git checkout tags/v${VERSION}
makers set-version ${VERSION}
# Build and install the project
makers install
Alternatively, you can:
- Use
cargo-wix
to build the MSI installer. - Use
cargo-deb
to build the DEB package. - Use
cargo-rpm
to build the RPM package.
If you want to modify the installation or runtime directory, please check our FAQ page for more details.
You can read our documentation website for usage instructions.
Please make sure that your Rust code is properly linted and formatted using clippy and rustfmt (nightly version).
There is currently no formatter for UserChrome JS and CSS, but may be added in the future. Please try to keep your code clean...