Ceno (Censorship.No!) is a next-generation mobile web browser that uses peer-to-peer technology to deliver websites to your phone and caches popular content with cooperating peers. Ceno can be used to bypass Internet censorship and help others retrieve blocked pages.
Built from Mozilla Android Components, it includes the Mozilla Web Platform via GeckoView and a Ouinet Client for sharing web content peer-to-peer.
🌴 Browse freely, anytime.
Ceno is designed with internet shutdown scenarios in mind. Websites are shared by a global network of peers, and stored in a distributed cache for availability when traditional networks are blocked or go down.
🔓 Unlock the web.
Access any website. Frequently requested content is cached on the network and cannot be forcibly removed.
💲 Reduce Data Costs.
By routing user traffic through peer-to-peer networks, Ceno Browser incurs less data costs while still providing users with circumvention capability.
🌐 Grow the Network, Fight Censorship.
Fight censorship by becoming a bridge! Install and run Ceno Browser to instantly join the network and expand the availability of blocked websites to those in censored countries.
👐 Free and open source.
Ceno Browser is powered by Ouinet, an open source library enabling third party developers to incorporate the Ceno network into their apps for peer-to-peer connectivity.
Ceno has two modes of operation - Public and Personal. You can easily toggle between them. Public mode offers the best connectivity but the least privacy - websites that you visit or share are recorded in a publicly accessible registry (BitTorrent). Private mode eliminates this record but may be slower and less efficient at retrieving content. See the FAQ or User Manual for more details on Ceno usage.
From testing to translations to bug reporting and merge requests, there are lots of ways to contribute to this project! Please see the contributing guidelines for more information.
To build debug versions of Ceno Browser, enter the checkout directory and execute the following commands,
cp local.propeties.sample local.properties
ANDROID_HOME=/path/to/Android/Sdk ./gradlew assembleDebug
The resulting apks will be copied to the output/debug/
directory.
The Ouinet client configuration is currently hardcoded at build time and cannot be changed at run time. You may customize the local.properties
file with your own values and rebuild as needed.
By default, the latest versions of the Ouinet library and our forks of Mozilla's GeckoView and Android-Components (built with our Mozilla Build Scripts) are automatically downloaded from the Maven Central repository and used for building both the debug and release variants of Ceno Browser.
To build the F-Droid version of Ceno Browser, which requires that the Mozilla libraries are built from scratch without any prebuilts or proprietary blobs, follow the instructions in the cenobuild repo.
Note: the use of Mozilla's prebuilt libraries in the official release of Ceno Browser means that F-Droid requires we disclose the "Upstream Non-Free" Anti-Feature, for more on this, see #77.
If your code has user-facing changes, follow Android accessibility best practices.
This project is tested with BrowserStack.
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.