Go to file
Melroy van den Berg 747ba7587f working save & save as 2021-03-29 22:03:14 +02:00
.vscode Introducing new cmark extensions. Fixing superscript. And fuse all inline features together in insertText() method 2021-03-05 01:18:42 +01:00
cmake Improve package desc 2021-03-29 01:42:02 +02:00
go-ipfs Add binary again 2021-03-27 15:56:18 +01:00
images Add new network icons. Make file class static members. Introduce connected/disconnect icon in the top bar. Add getPeers() method to IPFS class. 2021-03-27 18:53:19 +01:00
lib Implement IPFS network stats popover 2021-03-28 00:50:04 +01:00
misc Improve package desc 2021-03-29 01:42:02 +02:00
scripts Working schema and app installation detection. 2021-03-29 01:22:34 +02:00
src working save & save as 2021-03-29 22:03:14 +02:00
.gitignore Add build & package phase 2020-11-19 04:04:52 +01:00
.gitlab-ci.yml nevermind loc 2021-03-06 22:04:11 +01:00
.gitmodules Introduce submodule from vasild again 2020-12-12 04:18:19 +01:00
CMakeLists.txt Rename target 2021-03-02 17:50:41 +01:00
LICENSE Release 0.2.0/media/melroy/Data/Projects/browser/build/bin/browser 2021-02-12 23:36:12 +01:00
README.md Improve readme 2021-03-29 01:46:06 +02:00
big.md Create Abstruct base class for renderer. Fix cppcheck. 2020-11-22 00:05:51 +01:00
check.sh Add ci 2020-11-15 04:51:00 +01:00
equation.md Add extra example 2020-11-13 18:55:03 +01:00
plantuml.md Fix icon loading, show error when ipfs is not found and add plantuml example. 2021-03-01 22:28:58 +01:00
suppressions.txt Some refactoring 2020-12-14 19:40:08 +01:00
test.md working save & save as 2021-03-29 22:03:14 +02:00
test2.md Update demo page 2021-03-28 04:03:54 +02:00

README.md

LibreWeb Browser

Decentralized Web-Browser; a revolution of the WWW.

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: Project is still in development!

Download

Screens

Browser Screenshot
Browser Markdown Editor

Documentation

Visit the dedicated documentation site for user documentation.

Ideas/Features

The current success criteria:

  • 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, could be extended as well);
  • End-user is in control about the layout and styling (just like with e-books);
  • Content is King;
  • Fast and Extensible!

Note: Since HyperText (so is HTML) is not used, you can even ditch the HTTP protocol. However TLS, for encryption, can still be used.

Developers

Decentralized Browser is written C++ together with some libraries. It's using the cmark-gfm library for example, which is used for CommonMark (markdown) parsing.

We're using markdown as the source-code of the content/site. No HTML and JavaScript anymore, content is king after all.

LibreWeb Browser is using Gnome GTK3 as UI framework.

Development Environment

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.

Build Dependencies

For the build you need at least:

  • GCC 9 or higher (GCC 8 should also work, but not adviced. Package: build-essential)
  • CMake (Package: cmake)
  • Ninja build system (Package: ninja-build)
  • GTK & Pango (including C++ bindings):
    • Package: libgtkmm-3.0-dev under Debian based distros

Developer Docs

See latest Developer Docs.

Research

For research document plus findings including explanation (like diagrams) see the: