@teleport-js/teleport
v0.0.10
Published
<h1 align="center"> <br> <img src="https://res.cloudinary.com/dqmbs2chk/image/upload/v1603729357/portalLogoBlack_x1xg7p.png" alt="Teleport" width="100"> <br> <br> <span>Teleport.js</span> <br> </h1> <h4 align="center">Hybrid P2P File transfer
Downloads
16
Readme
Features
- Available as a CLI tool and a website 🚀 - Which can talk between themselves or each other.
- An opensource alternative to AirDrop - Discovers localNetwork devices and get Files with a single click
- No signUp needed fully P2P.
- Unique approach of using a mix of WebRTC and Webtorrent to scale onDemand and reusing existing connections and storage
- Supports multiple users at the same time for a file.
- Evades the wait time for torrent-creation induced by webTorrent by mimicing the chunkStore using normal webRTC and seding pieces prematurely. Once the torrent has been created , every peer connection is reused and webTorrent downloads only the pieces left - Huge perfomance boost 🚀.
- Uses the best approach based on the scale, torrentMode gets activated only if the roomSize gets larger ( more than 2 receivers)
Installing and CLI Usage
NPM install globally
$ npm i -g @teleport-js/teleport
To send a file
$ teleport send a.txt
To receive a file/text data using portal_code
$ teleport receive tyu-dsf-hji
To send clipboard data
$ teleport send -c
Find nearby / recently used portals
$ teleport receive
To send Text data
$ teleport send -t "Hello world"
To receive a file/text data using a recently connected nickname
$ teleport receive mike
API Usage
Create a new instance
const teleport = new Teleport(
{
server: "teleport server url", //Default heroku url
onConnect: init,
} // Called once instantiated
);
Create a room
teleport.createRoom(
"Myroom", //nickname
(words) => {
console.log(words);
}
); // callback called with roomJoining code apple-orange-cable
Join a room
teleport.joinRoom({nickname:'User1' // Display name on Joining the room
roomName:'apple-orange-cable'},()=>{console.log('Room Joined')}) // callback on successfully joining the room
Search for rooms in the localNetwork and join them without RoomCode (Privacy configurable)
teleport.search((roomCodes) => {
console.log(roomCodes); // ['apple-orange-cable']
});