
Turn relies heavily on field-proven, open-source software in all the layers of our technology stack. From Linux-based servers to the many open-source Java libraries our software uses, open-source software plays a crucial role in Turn's success. This is why we now give back to the community by making public some of our in-house developments under free and open-source software licenses.
Turn chose Github has the hosting platform for its open-source projects. Visit github.com/turn for a list of our public repositories.

Turn's BitTorrent library, ttorrent, is an open-source, pure-Java implementation of the BitTorrent protocol, providing an easy-to-embed implementation with a BitTorrent tracker and a downloading/seeding client. Both the tracker and the clients provide hooks for easy integration in a larger application, allowing for tracker control, or download progression updates, for example.
Ttorrent has been showing very exciting results in terms of global distribution speed and minimal overhead for the initial seeder. Since its first release, ttorrent has received several contributions from members of the open-source community and has been deployed at Etsy as a means of distributing their Solr indexes (see Turbocharging Solr Index Replication with BitTorrent).
Queen is a platform for running scripts on many browsers. It's a HTTP server which is capable of brokering socketed communication between browsers which are connected to it and other applications or scripts. The Queen server can be thought of as a pool of browsers which you can execute any JavaScript/HTML on.
Queen comes with a RPC server for its thin-client, queen-remote allowing remote machines to execute code through Queen. The server can also populate its connection automatically by spawn browsers using Selenium, Sauce Labs or BrowserStack. Execution can be targeted based on user-agent, or browser capabilities (anything Modernizr can detect). Queen is the foundation of Thrill, our test runner.
Thrill is a test runner for web applications. It leverages the Queen server, allowing many developers within an organization to use a central browser pool to execute their tests on. Thrill is capable of automatically detecting and injecting its adapter during testing to test suites using QUnit, jasmine, mocha, or YUI. This means minimal or no configuration is necessary to run tests suites using these frameworks.
Thrill can be run via command-line, grunt, or as an embedded library. It offers a simple API to write custom adapters or reporters, along with all the features of Queen.

Shapeshifter is a library bridging the gap between Protocol Buffers and JSON, for the purpose of building robust APIs whose payloads are well-defined and documented.
Shapeshifter schemas are instantiated from a Protocol Buffer message descriptor and can then be tuned and configured to customize the structure of the resulting JSON payload. Shapeshifter provides facilities for both outputting and parsing JSON from and into a Protocol Buffer message.
Shapeshifter supports JSON-Schema and is able to generate the appropriate representation from a configured schema instance.
© 2013 Turn. All Rights Reserved.