helium Documentation

Private, fast, and honest web browser

21,639 stars C++ C++ 5 files ยท ~2,069 tokens #browser#chromium#privacy#web-browser
RAW Doc

Technical Documentation: imputnet/helium

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`README.md`)

Downloads

[!NOTE]
Helium is in beta, so unexpected issues may occur.
Please report them if they haven't already been reported.

The easiest way to download Helium is helium.computer.
It'll pick a compatible binary for your platform automatically.

The same releases can also be downloaded from source on GitHub:

Helium supports automatic updates on macOS and Windows.

Helium repos

All Helium packaging, tooling, services, and components are open source
and published on GitHub.

Platform packaging and tooling

Web services

Helium services are Helium's
privacy-first cloud services that handle the extension proxy, !bangs, filter
lists, browser updates, crash reports, and etc. The services are self-hostable
and the repo includes exactly what we use and host, down to Ansible playbooks.

Components

  • Helium uBlock Origin is a
    Helium-specific fork of uBlock Origin that includes our filters, defaults, and
    CNAME uncloaking.

  • Helium onboarding includes
    the browser setup experience seen at helium://setup on first launch.

  • Helium non-free assets
    repo handles non-free assets used in Helium, such as search engine icons and
    icons of other browsers.

Tooling

  • Chromium tarballs creates
    prepared Chromium source archives used by Helium builds.

  • Helium Prism is a Svelte UI
    Component library used in onboarding and the landing page.

Helium Legal repo includes the
source for Terms of Use and
Privacy Policy documents, along with their
full change history.

Development

macOS and Linux are our primary development platforms, so they're the
recommended development environment for community contributions.

> See development docs in macOS repo

Linux packaging includes a similar development script, so the same guide
can be applied there too.

Contributing

Before contributing to Helium, please read the guidelines in
CONTRIBUTING.md.

Credits

The Chromium project

The Chromium Project is at the core of Helium,
making it possible in the first place.

ungoogled-chromium

Helium originally branched off
ungoogled-chromium.
Special thanks to everyone behind ungoogled-chromium, they made working with
Chromium much easier.

Other Chromium projects

Helium includes some patches from other open source Chromium projects:

All patches are sorted by vendor in the patches directory of this repo.

License

All code, patches, modified portions of imported code or patches, and
any other content that is unique to Helium and not imported from other
repositories is licensed under GPL-3.0. See LICENSE.

Any content imported from other projects retains its original license (for
example, any original unmodified code imported from ungoogled-chromium remains
licensed under their BSD 3-Clause license).


Overview (`devutils/README.md`)

Developer utilities for ungoogled-chromium

This is a collection of scripts written for developing on ungoogled-chromium. See the descriptions at the top of each script for more information.


Overview (`i18n/README.md`)

Helium i18n

This directory contains the translations for Helium browser UI strings.

Files

  • source.gen.json - Auto-generated list of translatable strings extracted from
    from patches. Do not edit manually.
  • languages.json - Map of locale codes to language names for all supported languages.
    Do not edit, we are not adding support for additional languages
    beyond what is already supported in Chromium.
  • translations/ - Per-language translation files.

Submitting translations

Do not open pull requests with new translations! We run translations in
batches
, if you would like to contribute to the translation of Helium,
please wait for the next batch.

If you are editing existing strings (e.g. you noticed some string(s) that are
incorrect), feel free to open a pull request as usual.

Translation reviewers

Your responsibility as a reviewer is to ensure the translation is the
best it can be. When reviewing translations for a specific language, focus on:

  • Accuracy of the translation relative to the source field
  • Correct preservation of `` placeholder tags
  • Appropriate formality register for the language
  • "Helium" and other brand names should not be translated

If you notice an error or mistranslation in any of the strings, feel free
to open a pull request to resolve it.

Translation owners

If you are a native speaker of a particular language and would be willing to
review any changes made to its translations, you may ask to be added for the
particular language file in owners.yml, if there are no or few
translators for that file. This would be preferrably done in a PR related to
the file itself.

Development

When adding strings to Helium, you might need to regenerate the source
file using ./devutils/i18n.py generate. Do not generate machine translations
of the strings, the maintainers will take care of this.

To apply existing translations to the Chromium tree, use utils/i18n_apply.py.
For more instructions, see the help (-h) output of these scripts.

Format

Each file in translations/ is a JSON array of translated entries.
Entries are matched to source.gen.json by content (name + source),
not by position. Each entry is an object:

json
{
  "name": "IDS_EXAMPLE_STRING",
  "source": "Original English text",
  "message": "Translated text",
  "feminine": "Feminine form (optional)",
  "masculine": "Masculine form (optional)"
}

The feminine/masculine fields are only present when the
translation genuinely differs by grammatical gender.


Overview (`devutils/third_party/README.md`)

This directory contains third-party libraries used by devutils.

Contents:


Overview (`utils/third_party/README.md`)

This directory contains third-party libraries used by build utilities.

Contents:

  • schema
    • For validating more sophisticated files such as INIs

--- METRICS ---