# 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: 🟢