All Projects → hyperwell → Gateway

hyperwell / Gateway

Licence: mit
🏰 Serving distributed Web Annotations from the decentralized web

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Gateway

Design Document
Architectural specification and design of p2🐼
Stars: ✭ 56 (+124%)
Mutual labels:  p2p, decentralization
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (+560%)
Mutual labels:  p2p, decentralization
Hyperfeed
decentralized rss publishing
Stars: ✭ 60 (+140%)
Mutual labels:  p2p, decentralization
Hive
Fast. Scalable. Powerful. The Blockchain for Web 3.0
Stars: ✭ 142 (+468%)
Mutual labels:  p2p, decentralization
nconnect
Securely connect to remote machines without the need of any server, public IP address, or publicly exposed ports.
Stars: ✭ 38 (+52%)
Mutual labels:  p2p, decentralization
Toxic
An ncurses-based Tox client (please make pull requests on the development fork: https://github.com/toktok/toxic)
Stars: ✭ 987 (+3848%)
Mutual labels:  p2p, decentralization
Space Daemon
The Space Daemon packages together IPFS, Textile Threads/Buckets, and Textile Powergate (Filecoin*) into one easy to install Daemon to make it easy to build peer to peer and privacy focused apps.
Stars: ✭ 151 (+504%)
Mutual labels:  p2p, decentralization
Dat React Native
Browse through the web with the Dat protocol in your device!
Stars: ✭ 25 (+0%)
Mutual labels:  p2p, decentralization
Agregore Browser
A minimal browser for the distributed web
Stars: ✭ 229 (+816%)
Mutual labels:  p2p, decentralization
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+10360%)
Mutual labels:  p2p, decentralization
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (+620%)
Mutual labels:  p2p, decentralization
Nkn
Official Go implementation of NKN full node.
Stars: ✭ 287 (+1048%)
Mutual labels:  p2p, decentralization
Iwant
Commandline tool for searching and downloading files in LAN network, without any central server
Stars: ✭ 268 (+972%)
Mutual labels:  p2p, decentralization
Go Spacemesh
Go Implementation of the Spacemesh protocol full node. 💾⏰💪
Stars: ✭ 389 (+1456%)
Mutual labels:  p2p, decentralization
Idea Php Symfony2 Plugin
IntelliJ IDEA / PhpStorm Symfony Plugin
Stars: ✭ 797 (+3088%)
Mutual labels:  annotation
Frankie
A frankenstein framework - middleware and annotation based
Stars: ✭ 19 (-24%)
Mutual labels:  annotation
Distribyted
📂 ➡️ 📺 🎶 🎮 Torrent client with on-demand file downloading as a filesystem.
Stars: ✭ 791 (+3064%)
Mutual labels:  p2p
Ebookcoin
Ebookcoin has been updated to DDN Blockchain,please get it from https://github.com/ddnlink/ddn
Stars: ✭ 789 (+3056%)
Mutual labels:  p2p
Go Dcpp
Hybrid Direct Connect hub written in Go.
Stars: ✭ 23 (-8%)
Mutual labels:  p2p
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+3480%)
Mutual labels:  p2p

Hyperwell Gateway

DOI

Proof-of-concept implementation of a peer-to-peer (P2P) system that leverages collaboration, local-first principles, and more on W3C Web Annotations. The system provides software for local nodes that store annotations, as well as a gateway server that implements the Web Annotation Protocol.

For establishing an environment of local-first applications for collaborative annotation, we store collections of annotations called notebooks in Hypermerge documents. These documents are distributed via the hyperswarm decentralized network and merged without conflicts via automerge.

The Hyperwell gateway aims to bridge the decentralized network and the web, offering collaborative annotation to Linked Data systems and web-based annotation environments alike by implementing the W3C Web Annotation specifications. For users, the gateway aims to offer institutional affiliation and archiving.

Hyperwell architecture

We laid out the motivation behind the decentralized annotation architecture of Hyperwell in our 2020 paper, ‘From Me to You: Peer-to-Peer Collaboration with Linked Data‘. For more on Hyperwell and the journey behind it: https://kassel.works/hyperwell

Important: This is alpha software for research. Your annotations will be available publicly and accessible without authentication. This software has not been professionally audited.

Usage

Run a gateway server via npm start or ./bin/server.js. The CLI accepts the following arguments:

  • --port <number> (-p): The port number to listen on. Defaults to 3000. Example: --port 8080.
  • --host <hostname>: The public hostname. Defaults to localhost:3000. Example: --host www.example.com:8080
  • --ssl (-s): Whether the gateway is served via SSL. This will not make the gateway actually terminate HTTPS requests (it listens for standard HTTP requests), but will transform annotation IDs accordingly, using the https: scheme. Defaults to false (not set).

API

The gateway exposes a web-based API as a superset of the Web Annotation Protocol, including support for batch operations as well as subscribing to real-time updates on notebooks via the WebSocket protocol. In the following, the <notebook> identifier corresponds to the notion of ‘containers’ on the LDP. We simply use a hexadecimal encoding of the respective Hypermerge document URL (hypermerge://abc123...) for URL safety. <annotation> corresponds to the ID of an annotation within a notebook, which commonly is a UUID string.

  • /annotations/<notebook>. REST endpoint for operations on an entire notebook. This endpoint supports retrieval of all of its annotations (GET) and creation of new a new annotation (POST).
  • /annotations/<notebook>/<annotation>. REST endpoint for operations on a particular annotation within a notebook. This endpoint supports retrieval (GET), editing (PUT), and deletion (DELETE).
  • /annotations/batch/<notebook>. REST endpoint for batch operations on a notebook. This endpoint supports batch creation (POST), batch edits (PUT), and batch deletions (DELETE).
  • /annotations/subscribe/<notebook>. WebSocket endpoint for subscribing to changes on a notebook. Upon initiating a connection via the standard WebSocket protocol, the gateway will send messages as soon as the respective notebooks receives changes.

(tbc).

License

MIT License, see ./LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].