Commit | Line | Data |
---|---|---|
0c5fb027 AE |
1 | <!DOCTYPE html> |
2 | <html> | |
3 | <head> | |
4 | <title>DIY Browsers</title> | |
5 | <style> | |
6 | body { | |
7 | font-family: Ubuntu; | |
8 | text-align: center; | |
9 | font-size: x-large; | |
10 | } | |
11 | h1, h2, h3, h4, h5, h6, dt {font-family: serif;} | |
12 | cite {color: blue; text-decoration: underline;} | |
13 | dl {text-align: left} dt {font-weight: bold;} | |
14 | pre {color: green; font-weight: bold; text-align: left;} | |
15 | hr {page-break-before: always;} | |
16 | </style> | |
17 | </head> | |
18 | <body> | |
19 | <h1>DIY Browsers</h1> | |
20 | <p>By Adrian Cochrane</p> | |
21 | ||
22 | <hr /> | |
23 | ||
24 | <h2>W3C web "recommendations"</h2> | |
25 | <p>Are longer than:</p> | |
26 | <ul> | |
27 | <li>C11</li> | |
28 | <li>C++17</li> | |
29 | <li>UEFI</li> | |
30 | <li>USB3.2</li> | |
31 | <li>POSIX</li> | |
32 | <li>Intel x86</li> | |
33 | <li>IETF RFCs</li> | |
34 | <li>Longest novels listed by Wikipedia</li> | |
35 | </ul> | |
36 | <p><cite>https://drewdevault.com/2020/03/18/Reckless-limitless-scope.html</cite></p> | |
37 | ||
38 | <hr /> | |
39 | ||
40 | <ol start="0"> | |
41 | <li>Freedom to use</li> | |
42 | <li>Freedom to modify</li> | |
43 | <li>Freedom to share</li> | |
44 | <li>Freedom to share modifications</li> | |
45 | </ol> | |
46 | ||
47 | <hr /> | |
48 | ||
49 | <h2>WebKit Linecounts</h2> | |
50 | <dl> | |
51 | <dt>WebKit</dt> | |
52 | <dd>18m</dd> | |
53 | <dd><dl> | |
54 | <dt>Tests</dt> | |
55 | <dd>10m</dd> | |
56 | <dt>Source</dt> | |
57 | <dd>7.3m</dd> | |
58 | <dd><dl> | |
59 | <dt>JavascriptCore</dt> | |
60 | <dd>0.6m</dd> | |
61 | <dt>3rd Party</dt> | |
62 | <dd>4m</dd> | |
63 | <dd><dl> | |
64 | <dt>libwebrtc</dt> | |
65 | <dd>2.7m</dd> | |
66 | </dl></dd> | |
67 | <dt>WebCore</dt> | |
68 | <dd>1.6m</dd> | |
69 | <dt>WebDriver</dt> | |
70 | <dd>6.8k</dd> | |
71 | <dt>WebGPU</dt> | |
72 | <dd>29k</dd> | |
73 | <dt>WebInspectorUI</dt> | |
74 | <dd>0.25m</dd> | |
75 | <dt>WebKit</dt> | |
76 | <dd>0.5m</dd> | |
77 | <dt>WebKit Legacy</dt> | |
78 | <dd>0.13m</dd> | |
79 | </dl></dd> | |
80 | </dl></dd> | |
81 | </dl> | |
82 | ||
83 | <hr /> | |
84 | ||
85 | <dl> | |
86 | <dt>WebCore</dt> | |
87 | <dd>1.6m</dd> | |
88 | <dd><dl> | |
89 | <dt>bridge + platform + PAL</dt> | |
90 | <dd>0.67m</dd> | |
91 | <dt>dom + domjit + html + mathml + svg + xml + editting + history + page</dt> | |
92 | <dd>0.30m</dd> | |
93 | <dt>css + cssjit + animation + display + layout + rendering + style</dt> | |
94 | <dd>0.26m</dd> | |
95 | <dt>bindings + crypto + fileapi + storage + workers + worklets</dt> | |
96 | <dd>0.12m</dd> | |
97 | <dt>loader + contentextensions</dt> | |
98 | <dd>41k</dd> | |
99 | </dl></dd> | |
100 | </dl> | |
101 | ||
102 | <hr /> | |
103 | ||
104 | <pre> | |
105 | gemini.circumlunar.space:1965 | |
106 | > gemini://gemini.circumlunar.space/ | |
107 | < 20 text/gemini | |
108 | < # Project Gemini | |
109 | < # Overview | |
110 | < Gemini is a new internet protocol which: | |
111 | < * Is heavier than gopher | |
112 | < * Is lighter than the web | |
113 | < * Will not replace either | |
114 | < * Strives for maximum power to weight ratio | |
115 | < * Takes user privacy very seriously | |
116 | < # Resources | |
117 | < => news/ Official Project Gemini news | |
118 | </pre> | |
119 | ||
120 | <hr /> | |
121 | <h2>Hypertext is universal</h2> | |
122 | <hr /> | |
123 | <dl> | |
124 | <dt>Rhapsode</dt> | |
125 | <dd>Voice browser</dd> | |
126 | <dt>Amphiarao</dt> | |
127 | <dd>Webpage debugger</dd> | |
128 | <dt>Haphaestus</dt> | |
129 | <dd>TV browser</dd> | |
130 | </dl> | |
131 | ||
132 | <p>The <em>Argonaut Stack</em>!</p> | |
133 | ||
134 | <hr /> | |
135 | ||
136 | <h2>Source code simplicity is important<br />Inclusivity is vital!</h2> | |
137 | ||
138 | <hr /> | |
139 | ||
140 | <h2>Mechanism</h2> | |
141 | <ol> | |
142 | <li><strong>HURL</strong></li> | |
143 | <li>http-client-tls</li> | |
144 | <li>html-conduit</li> | |
145 | <li><strong>html-conduit-stylist</strong></li> | |
146 | <li><strong>Haskell Stylist</strong></li> | |
147 | <li><strong>CatTrap</strong> + <strong>Balkon</strong></li> | |
148 | <li><strong>Mondrian</strong> + <strong>Typograffiti</strong></li> | |
149 | </ol> | |
150 | <hr /> | |
151 | <ul> | |
152 | <li>Harfbuzz</li> | |
153 | <li>LibICU</li> | |
154 | <li>Fontconfig</li> | |
155 | <li>FreeType</li> | |
156 | </ul> | |
157 | ||
158 | <hr /> | |
159 | ||
160 | <h2>Live Demo</h2> | |
161 | ||
162 | <hr /> | |
163 | ||
164 | <ul> | |
165 | <li>Contribute code</li> | |
166 | <li>Build your own!</li> | |
167 | <li>Use latest HTML & CSS</li> | |
168 | <li>Progressively enhance, especially regarding JavaScript use</li> | |
169 | <li>Proxy silos (e.g. Invidious, Nitter, Scribe)</li> | |
170 | <li>Build native (GTK? Qt?) standards-based apps</li> | |
171 | <li>Keep making the web great!</li> | |
172 | </ul> | |
173 | ||
174 | <hr /> | |
175 | ||
176 | <ul> | |
177 | <li><cite>https://haphaestus.org/</cite></li> | |
178 | <li><cite>https://rhapsode-web.org/</cite> 9.4kLoC</li> | |
179 | <li><cite>https://argonaut-constellation.org/</cite></li> | |
180 | <li>NLnet-funded</li> | |
181 | </ul> | |
182 | ||
183 | <p>Questions?</p> | |
184 | </body> | |
185 | </html> |