185 lines
8.8 KiB
HTML
185 lines
8.8 KiB
HTML
<h1 id="awesome-javascript-network-awesome-build-status-donate">Awesome
|
||
JavaScript Network <a
|
||
href="https://github.com/Kikobeats/awesome-network-js"><img
|
||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||
alt="Awesome" /></a> <a
|
||
href="https://travis-ci.org/Kikobeats/awesome-network-js"><img
|
||
src="https://img.shields.io/travis/Kikobeats/awesome-network-js/master.svg?style=flat-square"
|
||
alt="Build Status" /></a> <a href="https://paypal.me/kikobeats"><img
|
||
src="https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square"
|
||
alt="Donate" /></a></h1>
|
||
<blockquote>
|
||
<p>A 🎩 list of network layer resources written pure JS.</p>
|
||
</blockquote>
|
||
<h2 id="high-level">High level</h2>
|
||
<blockquote>
|
||
<p>Based, at least, in a CLI interface.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://github.com/mafintosh/airpaste">airpaste</a> – 1-1
|
||
network pipe that auto discovers other peers using mdns.</li>
|
||
<li><a href="https://github.com/mafintosh/blecat">blecat</a> – 1-1 pipe
|
||
over bluetooth low energy.</li>
|
||
<li><a href="https://github.com/mafintosh/deejay">deejay</a> – Music
|
||
player that broadcasts to everyone on the same network.</li>
|
||
<li><a href="https://github.com/maxogden/dhtkv">dhtkv</a> – CLI for
|
||
storing arbitrary key/value data in the bittorrent mainline DHT.</li>
|
||
<li><a href="https://github.com/amark/gun">gun</a> – A realtime,
|
||
decentralized, offline-first, graph database engine.</li>
|
||
<li><a href="https://github.com/mafintosh/hyperpipe">hyperpipe</a> –
|
||
Distributed input/output pipe.</li>
|
||
<li><a href="https://github.com/mafintosh/hypervision">hypervision</a> –
|
||
P2P Television.</li>
|
||
<li><a href="https://github.com/webtorrent/instant.io">instant.io</a> –
|
||
Streaming file transfer over WebTorrent.</li>
|
||
<li><a href="https://github.com/watson/ipp-printer">ipp-printer</a> –
|
||
Create a printer on your network.</li>
|
||
<li><a href="https://github.com/mafintosh/peercast">peercast</a> – Like
|
||
peerflix but for Chromecast.</li>
|
||
<li><a href="https://github.com/mafintosh/peerflix">peerflix</a> –
|
||
Streaming torrent client.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/peervisionary">peervisionary</a> –
|
||
Stream p2p content over your local network.</li>
|
||
<li><a href="https://github.com/mafintosh/peerwiki">peerwiki</a> –
|
||
browse all of wikipedia using bittorrent.</li>
|
||
<li><a href="https://github.com/maxogden/screencat">screencat</a> –
|
||
WebRTC screensharing app.</li>
|
||
<li><a href="https://github.com/mafintosh/signalhub">signalhub</a> –
|
||
Simple signalling server that can be used to coordinate handshaking with
|
||
webrtc or other fun stuff.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/torrent-mount">torrent-mount</a> –
|
||
Mount a torrent (or magnet link) as a filesystem in real time using
|
||
torrent-stream and fuse.</li>
|
||
<li><a href="https://github.com/mafintosh/webcat">webcat</a> – pipe
|
||
across the web using WebRTC.</li>
|
||
<li><a href="https://github.com/joewalnes/websocketd">websocketd</a> –
|
||
Turn any program that uses stdin/stdout into a WebSocket server.</li>
|
||
<li><a href="https://github.com/webtorrent/webtorrent">webtorrent</a> –
|
||
BitTorrent over WebRTC.</li>
|
||
<li><a
|
||
href="https://github.com/watson/wifi-triangulate">wifi-triangulate</a> –
|
||
Finds your current position on planet earth using the wifi access
|
||
point.</li>
|
||
</ul>
|
||
<h2 id="modules">Modules</h2>
|
||
<blockquote>
|
||
<p>Do one thing well.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/watson/airplay-server">airplay-server</a> – A
|
||
low level AirPlay server.</li>
|
||
<li><a href="https://github.com/xat/chromecast-player">castnow</a> –
|
||
simple chromecast player.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/discovery-swarm">discovery-swarm</a>
|
||
– A network swarm that uses <a
|
||
href="https://github.com/maxogden/discovery-channel">discovery-channel</a>
|
||
to find peers. Also check <a
|
||
href="https://github.com/mafintosh/webrtc-swarm">webrtc-swarm</a>.</li>
|
||
<li><a href="https://github.com/mafintosh/dns-packet">dns-packet</a> –
|
||
Abstract-encoding compliant module for encoding / decoding DNS packets.
|
||
Also see <a
|
||
href="https://github.com/mafintosh/dns-socket">dns-socket</a>.</li>
|
||
<li><a href="https://github.com/mafintosh/etcdjs">etcdjs</a> – Low level
|
||
etcd v2 client written in Javascript with failover support.</li>
|
||
<li><a href="https://github.com/watson/geocode-wifi">geocode-wifi</a> –
|
||
Get yours latitude/longitude based on your wifi access point.</li>
|
||
<li><a href="https://github.com/mafintosh/hash-to-port">hash-to-port</a>
|
||
– Hash a value to a valid port.</li>
|
||
<li><a href="https://github.com/mafintosh/hyperdb">hyperdb</a> –
|
||
Distributed scalable database.</li>
|
||
<li><a href="https://github.com/mafintosh/ip-packet">ip-packet</a> –
|
||
Encode/decode raw ip packets.</li>
|
||
<li><a href="https://github.com/webtorrent/magnet-uri">magnet-uri</a> –
|
||
Parse a magnet URI and return an object of keys/values.</li>
|
||
<li><a href="https://github.com/samchon/mutex-server">mutex-server</a> -
|
||
Critical section controllers, like mutex and semaphore, in the network
|
||
level.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/network-address">network-address</a>
|
||
– Get the local network address of your machine.</li>
|
||
<li><a
|
||
href="https://github.com/substack/network-simulator">network-simulator</a>
|
||
– Simulate a low-level computer network.</li>
|
||
<li><a href="https://github.com/watson/rtsp-stream">rtsp-stream</a> - A
|
||
transport agnostic RTSP serial multiplexer module for Node.</li>
|
||
<li><a href="https://github.com/feross/simple-peer">simple-peer</a> –
|
||
Simple WebRTC video/voice and data channels.</li>
|
||
<li><a
|
||
href="https://github.com/feross/simple-websocket">simple-websocket</a> –
|
||
Simple, EventEmitter API for WebSockets.</li>
|
||
<li><a
|
||
href="https://github.com/webtorrent/torrent-discovery">torrent-discovery</a>
|
||
– Discover BitTorrent and WebTorrent peers.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/torrent-stream">torrent-stream</a> –
|
||
The low level streaming torrent engine that peerflix uses.</li>
|
||
<li><a href="https://github.com/substack/udp-packet">udp-packet</a> –
|
||
Encode/decode raw udp packets.</li>
|
||
<li><a
|
||
href="https://github.com/elpheria/rpc-websockets">rpc-websockets</a> -
|
||
JSON-RPC 2.0 implementation over WebSockets for Node.js and
|
||
JavaScript.</li>
|
||
</ul>
|
||
<h2 id="protocols">Protocols</h2>
|
||
<blockquote>
|
||
<p>Implementation of protocols specs in pure javascript.</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li><a href="https://github.com/mafintosh/airswarm">airswarm</a> –
|
||
Network swarm that automagically discovers other peers on the network
|
||
using multicast dns.</li>
|
||
<li><a
|
||
href="https://github.com/webtorrent/bittorrent-dht">bittorrent-dht</a> –
|
||
BitTorrent DHT protocol implementation.</li>
|
||
<li><a
|
||
href="https://github.com/webtorrent/bittorrent-protocol">bittorrent-protocol</a>
|
||
– BitTorrent peer wire protocol implementation.</li>
|
||
<li><a
|
||
href="https://github.com/webtorrent/bittorrent-tracker">bittorrent-tracker</a>
|
||
– BitTorrent tracker (client & server) implementation</li>
|
||
<li><a href="https://github.com/watson/bonjour">bonjour</a> – A
|
||
Bonjour/Zeroconf protocol implementation.</li>
|
||
<li><a href="https://github.com/thibauts/node-castv2">castv2</a> – An
|
||
implementation of the Chromecast CASTV2 protocol.</li>
|
||
<li><a href="https://github.com/mafintosh/dht-rpc">dht-rpc</a> – Make
|
||
RPC calls over a <a
|
||
href="https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf">Kademlia</a>
|
||
based DHT.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/dns-discovery">dns-discovery</a> –
|
||
Discovery peers in a distributed system using regular dns and multicast
|
||
dns.</li>
|
||
<li><a href="https://github.com/mafintosh/hypercore">hypercore</a> – A
|
||
p2p network for distributing and replicating static feeds of binary
|
||
data.</li>
|
||
<li><a href="https://github.com/ipfs/js-ipfs-api">ipfs</a> – The
|
||
InterPlanetary File System, a new peer-to-peer hypermedia protocol.</li>
|
||
<li><a href="https://github.com/tristanls/k-bucket">k-bucket</a> –
|
||
Kademlia DHT K-bucket implementation as a binary tree.</li>
|
||
<li><a href="https://github.com/mafintosh/k-rpc">k-rpc</a> –
|
||
Implementation of the k-rpc protocol used the BitTorrent DHT. Also see
|
||
<a
|
||
href="https://github.com/mafintosh/k-rpc-socket">k-rpc-socket</a>.</li>
|
||
<li><a href="https://github.com/agnat/node_mdns">mdns</a> –
|
||
mdns/zeroconf/bonjour service discovery.</li>
|
||
<li><a
|
||
href="https://github.com/mafintosh/multicast-dns">multicast-dns</a> –
|
||
Low level multicast-dns implementation.</li>
|
||
<li><a href="https://github.com/mafintosh/peervision">peervision</a> –
|
||
Live p2p streaming protocol.</li>
|
||
<li><a href="https://github.com/mafintosh/polo">polo</a> – A zero
|
||
configuration service discovery module.</li>
|
||
<li><a href="https://github.com/watson/rtsp-server">rtsp-server</a> – A
|
||
low level module for creating RTSP servers.</li>
|
||
<li><a href="https://github.com/mafintosh/utp-native">utp-native</a> –
|
||
micro transport protocol, a network protocol similar to tcp that runs on
|
||
top of udp.</li>
|
||
</ul>
|
||
<p><a
|
||
href="https://github.com/Kikobeats/awesome-network-js">networkjs.md
|
||
Github</a></p>
|