All Projects → InstantWebP2P → Appnet.link

InstantWebP2P / Appnet.link

Licence: mit
Secure P2P HTTP Gateway as Tunnel Protocol

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Appnet.link

Lnbook
Mastering the Lightning Network (LN)
Stars: ✭ 931 (+358.62%)
Mutual labels:  p2p, peer
Discovery Swarm Webrtc
discovery-swarm for WebRTC
Stars: ✭ 56 (-72.41%)
Mutual labels:  p2p, peer
Ios P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 31 (-84.73%)
Mutual labels:  p2p, peer
Fluence
Peer-to-peer computing protocol and licensing system
Stars: ✭ 453 (+123.15%)
Mutual labels:  p2p, peer
Libcrtc
WebRTC C++ library built on top of chromium webrtc.
Stars: ✭ 89 (-56.16%)
Mutual labels:  p2p, peer
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (+273.89%)
Mutual labels:  p2p, peer
Python Nat Hole Punching
UDP and TCP NAT hole punching examples in python
Stars: ✭ 190 (-6.4%)
Mutual labels:  p2p, udp
udpeer
A simple UDP peer to peer networking proxy using webrtc
Stars: ✭ 19 (-90.64%)
Mutual labels:  udp, p2p
P2p Internet Workshop
Building the Peer-to-Peer Internet workshop series
Stars: ✭ 88 (-56.65%)
Mutual labels:  p2p, peer
Udp Hole Punching
An experimental P2P encrypted chat app created to show UDP hole punching in action
Stars: ✭ 77 (-62.07%)
Mutual labels:  p2p, udp
Nicotine Plus
Nicotine+: A graphical client for the SoulSeek peer-to-peer system
Stars: ✭ 310 (+52.71%)
Mutual labels:  p2p, peer
Spitfire
An easy to use WebRTC Datachannels library for .NET applications.
Stars: ✭ 164 (-19.21%)
Mutual labels:  p2p, udp
Near
A P2P library for Android for discovery on local networks using UDP and transfer in general using TCP sockets
Stars: ✭ 296 (+45.81%)
Mutual labels:  p2p, peer
P2p Media Loader
An open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page
Stars: ✭ 822 (+304.93%)
Mutual labels:  p2p, peer
hyperhyperspace-core
A library to create p2p applications, using the browser as a full peer.
Stars: ✭ 112 (-44.83%)
Mutual labels:  p2p, peer
Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+394.58%)
Mutual labels:  p2p, peer
opengnb
GNB is open source de-centralized VPN to achieve layer3 network via p2p with the ultimate capability of NAT Traversal.GNB是一个开源的去中心化的具有极致内网穿透能力的通过P2P进行三层网络交换的VPN。
Stars: ✭ 440 (+116.75%)
Mutual labels:  udp, p2p
peerchan
Fully decentralized p2p IRC for your terminal
Stars: ✭ 15 (-92.61%)
Mutual labels:  p2p, peer
Android P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 70 (-65.52%)
Mutual labels:  p2p, peer
P2p Cdn Sdk Javascript
Free p2p cdn github javascript sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀
Stars: ✭ 158 (-22.17%)
Mutual labels:  p2p, peer

AppNet.link - Secure P2P HTTP Gateway as Tunnel Protocol

Features

  • Run HTTP/HTTPS over UDP, taking UDP high performance
  • Run HTTP service in peer or p2p style as Tunnel, even behind NAT/Firewall
  • Support TURN, STUN data channel via Websocket
  • Support HTTP/HTTPS proxy over STUN or TURN connection
  • Support SDP session reconnect
  • Realtime web streaming from peer
  • Support end-to-end security, ip-port-based ACL
  • Multiplex connections on single udp port
  • Extend client/central server style web service transparently
  • Easy to use API, reuse existing http/web and node.js technology
  • Peer Service management
  • Support both IPv4 and IPv6
  • Backend controller services are open-source

Install

  • appnet.link depends on nodejs-httpp, please build it from repo nodejs-httpp

  • install appnet.link module

    npm i appnet.link
    
  • setup your own AppNet.link backend controller services refer to AppNet.link-controller

Usage/API:

1. create AppNet client

var APPNET = require('appnet.link');
var nmcln = new APPNET({
  usrinfo: {domain: '51dese.com', usrkey: 'dese'}, // fill usrkey. And, 51dese.com is only useful domain by now
});
nmcln.on('ready', function(){
  console.log('appnet.link ready with vURL:'+nmcln.vurl);
  // ...
});

2. hook node.js web server in peer. Websocket server is supported with wspp module as well. This is an express App example. file peerweb.js.

var express = require('express');
var WebSocket = require('wspp').wspp;
var WebSocketServer = WebSocket.Server;
var APPNET = require('appnet.link');
var nmcln = new APPNET({
  usrinfo: {domain: '51dese.com', usrkey: 'dese'}, // fill your usrkey. And, 51dese.com is only useful domain by now
});
nmcln.on('ready', function(){
  // 2.1
  // create your express App
  var app = express();
  app.use(express.directory(__dirname + '/public'));
  app.use(express.static(__dirname + '/public'));
  app.use(function(req, res){
      res.end('invalid path');
  });
  // hook app on business server
  nmcln.bsrv.srv.on('request', app);
  console.log('Now access your web server via URL:'+nmcln.vurl);
  // 2.2
  // create your websocket server
  var wss = new WebSocketServer({httpp: true, server: nmcln.bsrv.srv});
  wss.on('connection', function(client){
    console.log('new ws connection');
  });
  console.log('Now connect to your websocket server via URL:'+nmcln.vurl);
});

3. STUN/TURN session setup case, please refer to demos/clnt.js

Web service over STUN

More demos:

Look on demos/

TODO:

  • User authentication
  • Domain authorization
  • Improve documents, Protocol Spec, RFC draft

Support us

  • Welcome contributing on document, codes, tests and issues

License

(The MIT License)

Copyright (c) 2012-present Tom Zhou([email protected])

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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].