Paul Irish dropped us a line about our Talky Kickstarter and asked:
Can you detail the open source plans? What parts of Talky are not open sourced right now, but will be from this kickstarter? What parts of Talky will not be released as open source components?
For starters, let’s be clear that Talky is not a simple turnkey open source project. It’s too powerful for that, and we want to put that power in developers’ hands.
The average user doesn’t need or want to run the kind of server infrastructure required to run Talky, and doing so is a nontrivial exercise. The value, we feel, is contributing the components so that people can make great and ambitious things with it, and so we can empower non-WebRTC developers to have access to these technologies.
Paul is correct in his underlying assumption that a high percentage of Talky is presently open sourced, but some of these are poorly documented so we kind of consider it only partially open sourced at the present. Open source is kind of our whole thing, so the reality is there’s not a lot we’ve ever held back.
As an app and service, Talky is highly modular, and we are open sourcing all these module libraries. These modules would be more than sufficient coverage for the hard parts of someone to build a video chat application complete with an XMPP based text chat and using the Jitsi Video Bridge as a WebRTC SFU for multiparty.
Though we don’t call them this, let’s discuss Talky “1” (talky.io) vs Talky “2” (beta.talky.io) for context.
The modules involved in Talky 2 are mostly found at github.com/otalk. Note this is significantly more than the core components of Talky 1, which is primarily github.com/henrikjoreteg/simplewebrtc and related modules.
Talky 1 is “full mesh” (everyone streams to everyone) while Talky 2 uses a Selective Forwarding Unit (SFU), as Hangouts does, dramatically reducing the individual bandwidth. Talky 1 uses a simple Node server for signaling (github.com/andyet/signalmaster) while Talky 2 signaling uses Jingle (also like Hangouts) and XMPP, and all of its command-and-control is managed this way. Several of these components are already open sourced, but are not well documented.
Talky 1 uses SimpleWebRTC, but Talky 2 does not—yet. Our intent is to bring some of the power we’ve created in github.com/otalk back to SimpleWebRTC.
While there are numerous open source abstraction libraries for basic WebRTC calls, we are unaware of anyone who has open sourced the necessary components to modularly build something like Talky.
There is also Jitsi Meet, an open source project which can be spun up as a standalone open source Hangouts clone. Jitsi Meet was originally authored by our lead WebRTC developer, Philipp Hancke, but he’s proud of the modular JS approach taken with what we’ve open sourced from Talky, thanks to him being able to team up with our veteran JS devs.
So—tl;dr: The only pieces we are not open-sourcing are the UI, glue code, and operationalized infrastructure—but that’s it!
For more visit Talky.io and check out the details of our Kickstarter to take our video chat service to the next level.