LibreWeb is an **open-source decentralized web browser**, leveraging IPFS. What would you do different; if you could **reinvent** The Internet in 21st century?
With all the knowledge and new technologies available today. I was inspired by Douglas Engelbart, Tim Berners-Lee and Ted Nelson as well as projects like IPFS, Jekyll, ARPANET and more.
*Note:* This project is still work in progress. However, we have a working [alpha version available](https://gitlab.melroy.org/libreweb/libreweb-browser/-/releases).
Join our [Telegram group](https://t.me/libreweb) or [Matrix channel](https://matrix.to/#/#libreweb:melroy.org?via=melroy.org) and become part of our community!
- Everyone should be able to easily **read** and **create** a site/blog/news page and publish the content online (without minimal technical knowledge);
- Built-in easy-to-use **editor** (whenever you want to publish some content without programming language knowledge);
- **Decentralized** (no single-point of failure or censorship), like: P2P, DHT and IPFS;
- *No* client-server approach (the client is also the server and visa versa) - think **mesh network**.
- **Encrypted** transfers;
- Data is stored **redundantly** within the network (no single-point of failure);
- **Versioning**/revisions of content and documenents (automatically solves broken 'links', that can't happy anymore);
- Publisher user should be able to add additional information about the document/page, eg. title or path (similar in how Jekyll is using the `YML` format for meta data)
- Human-readable source-code (eg. `Markdown` format, could be extended as well);
- You are in control about the layout and styling (just like with e-books);
Decentralized Browser is written C++ together with some [external libraries](/lib). LibreWeb is using the [cmark-gfm](https://github.com/github/cmark-gfm) library for example, which is used for CommonMark (markdown) parsing.
LibreWeb Browser is also using [Gnome GTK3](https://developer.gnome.org/gtk3/stable/) framework for the GUI. Using the C++ bindings, called [Gtkmm](https://gtkmm.org/en/).
Personally, I'm using VSCodium editor, with the following extensions installed: `C/C++`, `CMake`, `CMake Tools`, `PlantUML`, `Markdown All in One`, `vscode-icons` and `GitLab Workflow`. But your local development setup is completely up to you.
See latest [Developer Documentation](https://gitlab.melroy.org/libreweb/libreweb-browser/-/jobs/artifacts/main/file/build_docs/docs/html/index.html?job=doxygen).
For more information and the latest pre-build GTK3 Windows download, please my other [GTK 3 bundle repo](https://gitlab.melroy.org/melroy/gtk-3-bundle-for-windows).
**Note:** We're currently busy trying to upgrade the [whole GTK stack](https://github.com/danger89/mxe/tree/update_gtk).
We used the following build command to get the Windows dependencies and MXE cross-compilation toolset:
```sh
make gtkmm3 curl -j 16 MXE_TARGETS='x86_64-w64-mingw32.static' MXE_PLUGIN_DIRS='plugins/gcc10'
```
*NOTE:* Soon we need gcc11, but GTK3 upstream needs to create a new release that fixes the GCC11 builds.
Add the following line to the end of the `~/.bashrc` file:
We're currently using [GitHub Actions](https://github.com/LibreWeb/libreweb-browser/blob/master/.github/workflows/macOS-build.yml) for the [macOS build](https://github.com/LibreWeb/libreweb-browser/actions/workflows/macOS-build.yml). You could already download the artifact if you want, but do not expect the runtime to work.
For [research document](https://gitlab.melroy.org/libreweb/research_lab/-/blob/master/research.md) plus findings including explanation (like [diagrams](https://gitlab.melroy.org/libreweb/research_lab/-/blob/master/diagrams.md)) see the: