Table of Contents
-
About The Project
-
Getting Started
- Usage
- Roadmap
- Contributing
- License
- Contact
About The Project
Sheer is a Peer-to-Peer filesharing command-line application. It utilizes WebRTC to establish a secure and direct connection between two users.
(back to top)
Getting Started
Installation
Install using Go install:
go install github.com/tylermeekel/sheer
Configuration
After running Sheer at least once, sheerconfig.json
is created in the same folder as its executable file.
Structure:
servers:
a list of ICEServers.
Example sheerconfig.json
file
{
"servers": [
{
"urls": ["stun:stun.examplestunserver.com:1234"]
},
{
"urls": ["turn:turn.exampleturnserver.com:1234"],
"username": "username",
"credentials": "password",
"credentialtype": "password"
}
]
}
STUN vs TURN
For true Peer-to-Peer connection, include only STUN servers in this config file. However, depending on the network of each peer, connection using STUN may not be possible and Sheer will not be able to form a connection without a TURN server.
For more information regarding STUN, TURN and the ICE framework, click here, or read the MDN pages on WebRTC protocols.
(back to top)
Usage
Sending a file
sheer [send|s] [filepath]
Receiving a file
sheer [receive|r]
(back to top)
Roadmap
- Ability to send directories
- Helper server that makes copy-pasting easier
- Clean up code
See the open issues for a full list of proposed features (and known issues).
(back to top)
Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request.
(back to top)
License
Distributed under the MIT License. See LICENSE
for more information.
(back to top)
Tyler Meekel - [email protected]
Project Link: https://github.com/tylermeekel/sheer
(back to top)