LibreWeb-Browser/README.md

72 lines
3.3 KiB
Markdown
Raw Normal View History

2021-02-12 14:48:48 -08:00
# DWeb Browser
2020-11-12 13:29:31 -08:00
2020-11-13 19:39:35 -08:00
Decentralized Browser; a revolution of the WWW.
2020-11-12 13:29:31 -08:00
2020-11-29 20:21:18 -08:00
What would you do different; if you could **reinvent** The Internet in 21st century? With all the knowledge and new technologies available today.
2020-11-13 19:39:35 -08:00
2020-11-29 20:21:18 -08:00
I was inspired by Douglas Engelbart, Tim Berners-Lee and Ted Nelson as well as projects like IPFS, Jekyll, ARPANET, and more.
2020-11-13 19:39:35 -08:00
2021-02-12 14:48:48 -08:00
*Note:* Project is still WIP!
2020-11-13 19:39:35 -08:00
2020-11-30 19:01:25 -08:00
![Browser Screenshot](./docs/browser_screenshot.png)
2020-11-13 19:39:35 -08:00
## Ideas/Features
2020-11-30 19:10:40 -08:00
The current success criteria:
2020-11-13 19:39:35 -08:00
* 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);
2021-02-16 15:06:33 -08:00
* **Decentralized** (no single-point of failure or censorship), like: P2P, DHT and IPFS;
2020-11-13 19:39:35 -08:00
* *No* client-server approach (the client is also the server and visa versa) - think **mesh network**.
* **Encrypted** transfers;
2021-02-16 15:06:33 -08:00
* Data is stored **redundantly** within the network (no single-point of failure);
2020-11-13 19:39:35 -08:00
* **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.
## Devs
2020-11-22 16:50:50 -08:00
Decentralized Browser written in C++20 with C libraries. And using the [cmark-gfm](https://github.com/github/cmark-gfm) library, used for CommonMark (markdown) parsing.
2020-11-13 19:39:35 -08:00
2021-02-12 14:48:48 -08:00
Browser is using GTK 3 as UI library including Pango & Cairo for text drawing and manipulation.
2020-11-13 19:39:35 -08:00
2020-11-28 20:00:32 -08:00
For now we will use markdown as the source of the site. No HTML and JavaScript anymore, content is king after all.
2020-11-13 19:39:35 -08:00
2020-11-22 16:50:50 -08:00
### Development Environment
2021-02-12 14:48:48 -08:00
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`.
2020-11-30 19:08:45 -08:00
### Build Dependencies
2020-11-20 15:13:12 -08:00
For the build you need at least:
2020-11-30 19:08:45 -08:00
* GCC 9 or higher (GCC 8 should also work, but not adviced. Package: `build-essential`)
* CMake (Package: `cmake`)
* Ninja build system (Package: `ninja-build`)
2020-11-28 20:00:32 -08:00
* GTK & Cairo & Pango (including C++ bindings):
2020-11-30 19:08:45 -08:00
- Package: `libgtkmm-3.0-dev` under Debian based distros
2020-11-20 15:13:12 -08:00
2020-11-30 17:10:23 -08:00
### Diagrams
There existing several design and/or research diagrams of Browser by using PlantUML. Sometimes words aren't enough to explain yourself.
[Check-out the diagrams page](docs/diagrams.md).
2020-11-30 18:28:44 -08:00
### Drawing/Graphics rendering engine/GUI
2020-11-13 19:39:35 -08:00
2020-11-30 18:28:44 -08:00
We are currently in an exploration phase about which 2D (vector) graphics rendering library we should use.
2020-11-14 17:39:05 -08:00
2021-02-12 14:48:48 -08:00
**Findings:** Using GTK 3 + Cairo + Pango, which works fine and is very fast!
2020-11-29 20:15:40 -08:00
2020-11-30 18:28:44 -08:00
See [research document](docs/research.md) (also in markdown) for more information and conclusions based on facts.
### Decentralized Web
We are also currently in an exploration page about which kind of P2P or decentralized network solution is the best fit.
See [research document](docs/research.md) (also in markdown) for more information and conclusions based on facts.