summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/turn/v2/DESIGN.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/turn/v2/DESIGN.md')
-rw-r--r--vendor/github.com/pion/turn/v2/DESIGN.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/github.com/pion/turn/v2/DESIGN.md b/vendor/github.com/pion/turn/v2/DESIGN.md
new file mode 100644
index 0000000..2c52466
--- /dev/null
+++ b/vendor/github.com/pion/turn/v2/DESIGN.md
@@ -0,0 +1,31 @@
+# Why Pion TURN
+TURN servers aren't exactly a hot technology, they are usually an after thought when building something. Most of the time
+beginners build an interesting WebRTC application, but at the very end realize they need a TURN server. It is really frustrating when you
+want to share your cool new project, only to realize you have to run another service.
+
+Then you find yourself building from source, fighting with config files and making changes you don't fully understand. Pion TURN was born
+hoping to solve these frustrations. These are the guiding principals/features that define pion-turn.
+
+## Easy setup
+simple-turn is a statically built TURN server, configured by environment variables. The entire install setup is 5 commands, on any platform!
+The goal is that anyone should be able to run a TURN server on any platform.
+
+## Integration first
+pion-turn makes no assumptions about how you authenticate users, how you log, or even your topology! Instead of running a dedicated TURN server you
+can inherit from github.com/pion/turn and set whatever logger you want.
+
+## Embeddable
+You can add this to an existing service. This means all your config files stay homogeneous instead of having the mismatch that makes it harder to manage your services.
+For small setups it is usually an overkill to deploy dedicated TURN servers, this makes it easier to solve the problems you care about.
+
+## Safe
+Golang provides a great foundation to build safe network services. Especially when running a networked service that is highly concurrent bugs can be devastating.
+
+## Readable
+All network interaction is commented with a link to the spec. This makes learning and debugging easier, the TURN server was written to also serve as a guide for others.
+
+## Tested
+Every commit is tested via travis-ci Go provides fantastic facilities for testing, and more will be added as time goes on.
+
+## Shared libraries
+Every pion product is built using shared libraries, allowing others to build things using existing tested STUN and TURN tools.