---
# System prepended metadata

title: Chromium IPFS Integration

---

# Chromium IPFS Integration

After a long period of refactoring by Igalia to improve handling of non-HTTP protocols in Chromium we are now able to more reasonably add IPFS support.

There are a variety of ways to integrate IPFS, each with trade-offs in functionality and complexity.

Below is a list of approaches, with a stab at comparing them in various ways.

The approaches are not necessarily mutually exclusive, and could be combined and controlled through build configuration or end-user configuration. For example, Brave ships a gateway approach enabled by default, with user option to enable a full local Kubo node.

"Embedders", as browser vendors building on Chromium are known in that ecosytem, need to balance ongoing cost and complexity of keeping out-of-tree code. It could be that the approaches below live as extra-tree patches for some period of time until multi-vendor adoption results in enough support to make it possible to land in the tree.

## Gateway: Simple Redirect

In the Simple Redirect implementation, the `ipfs` scheme redirects to a single IPFS HTTP gateway.

This implementation has no local IPFS functionality, is purely HTTP and can use the Chromium network stack.

* Timeframe: 1mo
* Complexity: 🟢
* Decentralization: 🔴
* Resilience: 🔴
* Data Ownership: 🔴
* Desirability: 🟢 - browser vendor interest

## Gateway: Racing Gateway

Similar to the Simple Redirect, but connects to multiple IPFS gateways for a given request, opting for first response.

This implementation has no local IPFS functionality, is purely HTTP and can use the Chromium network stack.

More at https://hackmd.io/rxFtUuTdRTO4-nyAxPHNqQ

* Timeframe: 3-6mos
* Complexity: 🟡
* Decentralization: 🟡
* Resilience: 🟡
* Data Ownership: 🔴
* Desirability: 🟢 - likely browser vendor interest

## Full Node: Bundled Iroh

Bundle Iroh, compiled into Chromium as a vendor library, not integrated into the Chromium network stack at all.

* Timeframe: 6-12mos
* Complexity: 🔴
* Decentralization: 🟢
* Resilience: 🟢
* Data Ownership: 🟢
* Desirability: 🟡 - pushes on Rust in Chromium and grows Iroh usage, but unclear if any browser would ship it

## Full Node: Bundled Kubo

The approach Brave took to manage a local Kubo instance. 

* Timeframe: 6mos
* Complexity: 🔴
* Decentralization: 🟢
* Resilience: 🟢
* Data Ownership: 🟢
* Desirability: 🔴 - duplicates what Brave did, other browsers not interested

## Full Node: Chromium-native

Complete implementation IPFS as a full participant in the public DHT or equivalent level of functionality.

* Timeframe: 24mos
* Complexity: 🔴
* Decentralization: 🟢
* Resilience: 🟢
* Data Ownership: 🟢
* Desirability: 🟢