3f47b08c2b | ||
---|---|---|
.vscode | ||
cmake | ||
docs | ||
lib/commonmarker | ||
misc | ||
scripts | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
big.md | ||
check.sh | ||
equation.md | ||
suppressions.txt | ||
test.md |
README.md
Browser for DWWW
Decentralized Browser; a revolution of the WWW.
What would you do, if you could reinvent The Internet in 21st century? With all the knowledge and new technologies available today.
I was inspired by Douglas Engelbart, Ted Nelson as well as projects like IPFS, Jekyll, ARPANET, and more.
Note: Project is WIP!
Ideas/Features
The current plan:
- 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 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 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.
Text on Screen Flowcharts
Prepare steps
(*) --> "Load fonts glyphs (ttf)/default font"
--> "Create Font Atlas"
--> "Create Viewport"
-->[Ready for render] (*)
Text rendering
(*) --> "Get file online /\nRead from disk"
-->[Content in memory] "Parse document"
-->[AST output] "Convert AST to Bitmap struct"
-->[Ready for painter] "Paint text on Viewport"
-->[Text visable on Screen] (*)
ttf = TrueType Font
AST = Abstract Syntax Tree
Devs
Decentralized Browser written in C++20 with C libraries. And using the cmark-gfm library, used for CommonMark (markdown) parsing.
The GUI toolkit and 2D/vector graphics engine is not yet decided (see research below).
We can also still change the language of the source code (iso markdown). Atleast no HTML and JavaScript anymore, content is king after all.
Development Environment
I'm using VSCodium editor, with the following extensions installed: C/C++
, Cmake
and Cmake Tools
.
Depedencies
For the build you need at least:
- GCC 9 or higher (GCC 8 should also work)
- CMake
- Qt (
qt5-default
package) -> for now
For Release packaging:
- CPack
2D/Vector engines - Under Research
We are currently in an exploration phase, which 2D vector graphics rendering library we should us.
See research document for more information and conclusions based on facts.