All Projects → PixelsCommander → Viraljs

PixelsCommander / Viraljs

Express.JS middleware to enable P2P distribution for your app. Your decentralized CDN made easy.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Viraljs

Libdatachannel
C/C++ WebRTC Data Channels and Media Transport standalone library
Stars: ✭ 336 (-64.71%)
Mutual labels:  webrtc, p2p
Waggle.js
An experiment to distribute the bandwidth among video viewers
Stars: ✭ 29 (-96.95%)
Mutual labels:  webrtc, p2p
P
Peer-to-peer networking with browsers
Stars: ✭ 400 (-57.98%)
Mutual labels:  webrtc, p2p
go-ayame
go-ayame is go client library for WebRTC Signaling Server Ayame
Stars: ✭ 20 (-97.9%)
Mutual labels:  webrtc, p2p
Webrtc android
webrtc VideoCall VideoConference 视频通话 视频会议
Stars: ✭ 764 (-19.75%)
Mutual labels:  webrtc, p2p
Instant.io
🚀 Streaming file transfer over WebTorrent (torrents on the web)
Stars: ✭ 2,954 (+210.29%)
Mutual labels:  webrtc, p2p
Webtorrent
⚡️ Streaming torrent client for the web
Stars: ✭ 25,554 (+2584.24%)
Mutual labels:  webrtc, p2p
Diffy
🎞️💓🍿 Love streaming - It's always best to watch a movie together ! 🤗
Stars: ✭ 37 (-96.11%)
Mutual labels:  webrtc, p2p
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (-20.27%)
Mutual labels:  webrtc, p2p
Webtorrent Cli
WebTorrent, the streaming torrent client. For the command line.
Stars: ✭ 633 (-33.51%)
Mutual labels:  webrtc, p2p
peermesh
💫 Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.
Stars: ✭ 107 (-88.76%)
Mutual labels:  webrtc, p2p
Peer Calls
Group peer to peer video calls for everyone written in Go and TypeScript
Stars: ✭ 837 (-12.08%)
Mutual labels:  webrtc, p2p
rtc-ssh
WebRTC wrapper for SSH connect
Stars: ✭ 95 (-90.02%)
Mutual labels:  webrtc, p2p
Meething
dWebRTC Video Meetings MESH/SFU hybrid using GunDB, MediaSoup and Beyond!
Stars: ✭ 303 (-68.17%)
Mutual labels:  webrtc, p2p
udpeer
A simple UDP peer to peer networking proxy using webrtc
Stars: ✭ 19 (-98%)
Mutual labels:  webrtc, p2p
Pearplayer.js
支持WebRTC的多源多协议混合P2P-CDN的流媒体播放器
Stars: ✭ 512 (-46.22%)
Mutual labels:  webrtc, p2p
Study-Room
Connect and study together with friends over text and voice channels, over a click of a button. Web application for chat and audio streaming.
Stars: ✭ 21 (-97.79%)
Mutual labels:  webrtc, expressjs
P2P-CKPlayer
嵌入P2P引擎的CKPlayer,视频网站省流量&加速神器
Stars: ✭ 49 (-94.85%)
Mutual labels:  webrtc, p2p
Simple Peer
📡 Simple WebRTC video, voice, and data channels
Stars: ✭ 5,923 (+522.16%)
Mutual labels:  webrtc, p2p
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 (-13.66%)
Mutual labels:  webrtc, p2p

ViralJS

ExpressJS middleware for P2P Web apps distribution

To reduce server load, latency and establish self-maintainable CDN based on your users browsers.

Join the chat at https://gitter.im/PixelsCommander/ViralJS

Installing from NPM

npm -i viraljs

How to use?

var ViralContainer = require('viraljs');
var viralContainer = new ViralContainer();
myExpressApp.use(viralContainer.middleware);

Isomorphism blurred boundaries between server and client. The only difference between them currently is server`s ability to distribute application to clients. What if we go further enabling client to do this? What if we erase boundaries between server and client completely? In this case every client which got application`s code becomes it`s distributor or carrier. And drawing the analogy with spreading microorganisms in the nature this technique perfectly matches “viral JavaScript“ naming.

Motivation

P2P content distribution allows to reduce server load and decrease network latency since peering could be setup in the way content to be delivered from the nearest peer available. For example after hitting corporative network application will be delivered inside of it using high speed internal channels without creating a load on company`s internet channel.

Normal distribution

Traditional app distribution. Server sends package many times, corporative internet channels are loaded appropriately

P2P distribution

In case of P2P distribution application hits corporative network once and then is distributed using high speed internal network. This reduces server load and corporative internet channel load

Or another case – once application got from USA to Europe it is delivered inside of European networks only without creating transatlantic traffic.

Normal distribution

It takes a lot of transatlantic trips to transmit an app when doing it in a traditional way

P2P distribution

P2P allows to reduce number of transcontinental transfers and reduce server load

By distributing application via P2P you create a self-establishing and self-evolving CDN which moves data closer to client.

Bug tracker

Have a bug? Please create an issue here on GitHub!

https://github.com/PixelsCommander/ViralJS/issues

License

MIT: http://mit-license.org/

Copyright 2015 Denis Radin aka PixelsCommander

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