• Stars
    star
    100
  • Rank 340,703 (Top 7 %)
  • Language
    Nim
  • Created over 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A new type of JavaScript-free light-weight fast browser built on rst and web assembly. Does not actually exist.

TerseNet

For some context, read Adblocking, How about Nah?

Work in Progress

Note: What this actually does so far Right now (after two days of actual coding) it is sort of like a janky RST viewer that only knows about headings and paragraphs. Not useable for anything.

I have also done some research, such as dat, ipfs, gnunet and libp2p, web assembly, etc. ipfs seems to be performing better now at retrieving content than it did a few years ago.

Everything below here is just an idea -- not actually coded yet

TerseNet is a new type of lightweight, high-performance document, media and application browser suite that is 100% JavaScript free. Pages are encoded in stricly size-limited subset of restructuredtext distributed in a content-oriented (rather than server-centric) fashion. They load almost instantly from network peers.

This software prototype is written in the Nim programming language. One of the primary goals is for it to be feasible for individuals or small teams to implement some or all types of TerseNet browsers, so there should be multiple clients available, and large companies cannot control the platform, as is the case with browsers essentially incorporating a full bloated operating system that can only be implemented by large teams over the course of years.

Ad-free

It is impossible for ads from the traditional web to display in TerseNet, or for companies to track you -- because no content or links from the traditional web can be displayed by TerseNet browsers.

This web browser is a relatively simple system, rather than an entire operating system-in-a-box like Chrome or Firefox. It is supported by decentralized protocols.

Multiple Browser Types with a Simple Standard for Integration Between Them

TerseNet functionality is separated into three types of browsers:

  1. Info browsers, for distributing text and very lightweight diagrams,
  2. Media Applications browsers, which run web assembly applications that can optionally be used to display or interact with media from TerseNet sites,
  3. Extended Media Applications browsers, handling web assembly applications that support various extensions via a type of device driver API.

There should be multiple implementations of each type of browser. To make this practical, the required functionality is kept as sparse as possible while still remaining as flexible as necessary for each type of functionality.

TerseNet Info Pages

RST (restructured text) subset

TerseNet Info RST supports the following features: headings (with #), escape with backtick, bold, italics, bullets, and links (only to other TerseNet info pages, e.g. terse://reports.frontline/aug2019austin). Pages may also incoroporate IconVG files in between text paragraphs.

Each page may be a maximum of 5KiB of text and/or IconVG data when uncompressed, with an additional optional 1KiB of attachment listings.

TerseNet Media Applications

TerseNet Extended Applications

Attachments

All non-RST content (except for one small image) is loaded only upon demand by the user.

Media and applications can be attached to pages, but have restrictions. No more than 10KB of images will be loaded by default.

Other than that small image, media must be launched explicitly from the Media tab. Zero bytes will be loaded, processed, or transmitted without prompting by the user.

Media attachments

Pages may attach images or videos. Their descriptions appear on the Media Tab. Users must switch tabs and click the individual media item before any loading or processing is done. Images and media may not be loaded from traditional web sources outside of TerseNet protocols.

Application attachments

Applications may be attached to pages. They appear on the Applications tab and are not downloaded or executed unless explicitly launched by the user.

Attached applications are written in web assembly with some basic I/O abilities which include:

  • A simple UI API

  • A communications API that connects applications with TerseNet's p2p backbone

  • Carefully controlled payment prompts that integrate popular cryptocurrencies. Available cryptocurrencies currently include: Bitcoin, Ethereum, and Bitcoin Cash.

P2P Search

All markdown content is automatically added to a full-text search system. This search capability is powered by the peers in the network.

More Repositories

1

dadsresume

My dad's resume and skills from 1980
1,718
star
2

angular-on-server

Update: this was several years ago. The way to do it now is called Angular Universal https://angular.io/guide/universal Alternatively you can use something like https://prerender.io/
JavaScript
181
star
3

MC-Chunk-Loader

IGNORE THIS REPO. New version is at http://github.com/ithkuil/mcchunkloader. JavaScript/WebGL Minecraft Map Viewer
JavaScript
48
star
4

z80-machine-code

Generating Z80 machine code for ZX Spectrum from JavaScript
JavaScript
26
star
5

json-update

Easily update JSON files with one line of code.
CoffeeScript
25
star
6

mcchunkloader

JavaScript
24
star
7

modhelp

JavaScript
23
star
8

bcryptnim

C
14
star
9

genpyteal

Experiment to rewrite Python into PyTeal using RedBaron
Python
9
star
10

tinyvillage

HTML
8
star
11

askwatson

JavaScript
7
star
12

babel-changed

Runs babel on files that have been modified since last run
JavaScript
7
star
13

login-mongo

Simple authentication/users back-end using MongoDB
CoffeeScript
6
star
14

redissessions

Nim
6
star
15

pubsub

Simplest pubsub protocol.
5
star
16

cureblog

OICPLUGIN Node.js-based blog and CMS/widget platform
JavaScript
5
star
17

whyes6hasclasses

Why ES6 has classes and you should use them
4
star
18

vpsbench

Very simple benchmark utility/site
Shell
4
star
19

meteor-tquery

Meteor plugin for including tQuery (Three.js plugin system)
JavaScript
4
star
20

vr

3
star
21

askleo

JavaScript
2
star
22

icanhazip

JavaScript
2
star
23

timequerylog

JSON logging separated per hour and easily queryable
JavaScript
2
star
24

runspin

Run shell command with a spinner
JavaScript
2
star
25

evolvingbitcoin

2
star
26

algoverse-concept

Concept for an open metaverse using WebXR running on the Algorand blockchain
2
star
27

jscaster

Uses web sockets and node.js to broadcast cursor and JavaScript which is eval'd on each browser.
JavaScript
2
star
28

ailang

2
star
29

VSIMdocs

VSIM documentation (about 70% complete, needs a lot of work still)
2
star
30

gamechanger

CoffeeScript
2
star
31

ratelimited

Rate limit function calls per key by specifying minimum call interval.
JavaScript
1
star
32

recycler

Recycle bin for oic
JavaScript
1
star
33

showdown-forms

JavaScript
1
star
34

zork_on_gemini

Python
1
star
35

nnpapers

1
star
36

smartcat

JavaScript
1
star
37

sevensegmenttm1637

Simple Arduino class for 7 segment LED display with TM1637
C++
1
star
38

oictestplugin2

This is a test plugin 2
JavaScript
1
star
39

oictestplugin1

This is the oictestplugin1 to be deleted.
JavaScript
1
star
40

bild

Yet another build/task tool
JavaScript
1
star
41

subleqrun

Yet another subleq interpreter
C
1
star
42

sched

Shell
1
star
43

sq

subleq interpreter c which handles hsq and does not wait for enter
C
1
star
44

music1

A simple way to play with MML (Music Macro Language). Enter MML in text area and press play button.
JavaScript
1
star
45

get-ranges

JavaScript
1
star
46

oic-text1

1
star
47

agiexists

Why I Believe Artificial General Intelligence Has Already Been "Invented"
HTML
1
star
48

singlesites

Simple single-page site hosting/proxying with Node.js
CoffeeScript
1
star
49

reddit-place-image

Save/manipulate reddit.com/r/place board bitmap easily
JavaScript
1
star
50

babelrc-install

JavaScript
1
star
51

oicgroove

Play Soma.FM's Groove Salad
JavaScript
1
star
52

oicplugins

Plugins/components/widgets for OIC platform
1
star
53

cure-platform

Node.js data and content management platform with plugin and component architecture
JavaScript
1
star
54

vhostman

Simple vhost for node.js (basically a front-end to bouncy)
CoffeeScript
1
star
55

ipwtext

Text widget for oic
JavaScript
1
star