The Wayback Machine - https://web.archive.org/web/20190323133323/https://github.com/pions/webrtc
Skip to content
Please note that GitHub no longer supports your web browser.

We recommend upgrading to the latest Google Chrome or Firefox.

A Go implementation of the WebRTC API
Branch: master
Clone or download
zigazeljko and Sean-Der Fix error reporting
Wrong error variable was used in data-channels-create example.
Latest commit ee5aa24 Mar 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add lint for filenames Feb 28, 2019
examples Fix error reporting Mar 23, 2019
internal Reduce global state Mar 21, 2019
pkg
test-wasm
.codacy.yaml
.eslintrc.json Add eslintrc for codacy Aug 11, 2018
.gitignore
.golangci.yml CI: Enable no-inits linter Mar 21, 2019
.travis.yml Fix all lint errors in examples/ Mar 21, 2019
DESIGN.md
LICENSE Initial commit May 18, 2018
README.md
api.go Improve build tags for Wasm Mar 22, 2019
api_test.go
bundlepolicy.go
bundlepolicy_test.go Remove rtc prefix from filenames Feb 18, 2019
certificate.go
certificate_test.go
configuration.go
configuration_js.go Improve build tags for Wasm Mar 22, 2019
configuration_test.go Remove rtc prefix from filenames Feb 18, 2019
constants.go
datachannel.go
datachannel_go_test.go Combine some tests for Go and Wasm Mar 19, 2019
datachannel_js.go Improve build tags for Wasm Mar 22, 2019
datachannel_ortc_test.go
datachannel_test.go
datachannelinit.go Remove rtc prefix from filenames Feb 18, 2019
datachannelmessage.go
datachannelparameters.go Update sctp and datachannel revs Feb 18, 2019
datachannelstate.go
datachannelstate_test.go
dtlsfingerprint.go Remove rtc prefix from filenames Feb 18, 2019
dtlsparameters.go
dtlsrole.go Remove rtc prefix from filenames Feb 18, 2019
dtlsrole_test.go Remove rtc prefix from filenames Feb 18, 2019
dtlstransport.go
dtlstransportstate.go
dtlstransportstate_test.go
errors.go
go.mod Move logging out of tree Mar 21, 2019
go.sum
icecandidate.go Move pkg/ice to internal/ice Mar 1, 2019
icecandidate_test.go Move pkg/ice to internal/ice Mar 1, 2019
icecandidateinit.go API: Use ICECandidateInit in AddICECandidate Feb 21, 2019
icecandidateinit_test.go
icecandidatepair.go Add OnSelectedCandidatePairChange callback Mar 1, 2019
icecandidatetype.go
icecandidatetype_test.go Remove rtc prefix from filenames Feb 18, 2019
icecomponent.go
icecomponent_test.go
iceconnectionstate.go Remove rtc prefix from filenames Feb 18, 2019
iceconnectionstate_test.go Remove rtc prefix from filenames Feb 18, 2019
icecredentialtype.go
icecredentialtype_test.go
icegatherer.go
icegatherer_test.go
icegathererstate.go
icegathererstate_test.go Remove rtc prefix from filenames Feb 18, 2019
icegatheringstate.go Remove rtc prefix from filenames Feb 18, 2019
icegatheringstate_test.go
icegatheroptions.go
iceparameters.go
iceprotocol.go Remove rtc prefix from filenames Feb 18, 2019
iceprotocol_test.go Remove rtc prefix from filenames Feb 18, 2019
icerole.go
icerole_test.go Remove rtc prefix from filenames Feb 18, 2019
iceserver.go Improve build tags for Wasm Mar 22, 2019
iceserver_js.go
iceserver_test.go Improve build tags for Wasm Mar 22, 2019
icetransport.go Move logging out of tree Mar 21, 2019
icetransportpolicy.go
icetransportpolicy_test.go
icetransportstate.go
icetransportstate_test.go Move pkg/ice to internal/ice Mar 1, 2019
js_utils.go Improve build tags for Wasm Mar 22, 2019
mediaengine.go Improve build tags for Wasm Mar 22, 2019
mediaengine_test.go
networktype.go
networktype_test.go Add a customization to control network types Mar 13, 2019
oauthcredential.go Rename MacKey -> MACKey Feb 18, 2019
offeransweroptions.go
package.json Add tests for WASM bindings Mar 15, 2019
peerconnection.go
peerconnection_close_test.go Combine some tests for Go and Wasm Mar 19, 2019
peerconnection_go_test.go
peerconnection_js.go Improve build tags for Wasm Mar 22, 2019
peerconnection_js_test.go Improve build tags for Wasm Mar 22, 2019
peerconnection_media_test.go Add tests for WASM bindings Mar 15, 2019
peerconnection_test.go Improve build tags for Wasm Mar 22, 2019
peerconnectionstate.go
peerconnectionstate_test.go
prioritytype.go
prioritytype_test.go Remove rtc prefix from filenames Feb 18, 2019
quicparameters.go Remove rtc prefix from filenames Feb 18, 2019
quicrole.go
quicrole_test.go Remove rtc prefix from filenames Feb 18, 2019
quictransport.go Add JavaScript/WASM bindings Mar 7, 2019
quictransport_test.go
rtcpfeedback.go
rtcpmuxpolicy.go Remove rtc prefix from filenames Feb 18, 2019
rtcpmuxpolicy_test.go
rtpcodingparameters.go
rtpdecodingparameters.go Remove rtc prefix from filenames Feb 18, 2019
rtpencodingparameters.go
rtpreceiveparameters.go
rtpreceiver.go
rtpsender.go
rtpsendparameters.go
rtptransceiver.go
rtptransceiverdirection.go Remove rtc prefix from filenames Feb 18, 2019
rtptransceiverdirection_test.go
sctpcapabilities.go
sctptransport.go Change public DataChannel props to methods Mar 19, 2019
sctptransportstate.go Remove rtc prefix from filenames Feb 18, 2019
sctptransportstate_test.go Remove rtc prefix from filenames Feb 18, 2019
sdptype.go Remove rtc prefix from filenames Feb 18, 2019
sdptype_test.go
sessiondescription.go
sessiondescription_test.go Rename Sdp -> SDP Feb 18, 2019
settingengine.go
settingengine_test.go Improve build tags for Wasm Mar 22, 2019
signalingstate.go
signalingstate_test.go Remove rtc prefix from filenames Feb 18, 2019
track.go
track_test.go Add tests for WASM bindings Mar 15, 2019
yarn.lock

README.md

Pion WebRTC
Pion WebRTC

A pure Go implementation of the WebRTC API

Pion webrtc Sourcegraph Widget Slack Widget Waffle board
Build Status GoDoc Coverage Status Go Report Card Codacy Badge License: MIT


See DESIGN.md for an overview of features and future goals.

Breaking Changes

Pion WebRTC v2.0.0 is coming soon! HEAD will be unstable for the next few weeks as we prepare for the new release. See the release notes to learn about the new features breaking changes.

Have any questions? Join the Slack channel to follow development and speak with the maintainers.

Use the tag v1.2.0 if you'd like to continue using the v1.0 API in the meantime. After v2.0 is released v1.0 will be deprecated and unmaintained.

Usage

Check out the example applications to help you along your Pion WebRTC journey.

The Pion WebRTC API closely matches the JavaScript WebRTC API. Most existing documentation is therefore also usefull when working with Pion. Furthermore, our GoDoc is actively maintained.

Now go forth and build some awesome apps! Here are some ideas to get your creative juices flowing:

  • Send a video file to multiple browser in real time for perfectly synchronized movie watching.
  • Send a webcam on an embedded device to your browser with no additional server required!
  • Securely send data between two servers, without using pub/sub.
  • Record your webcam and do special effects server side.
  • Build a conferencing application that processes audio/video and make decisions off of it.

WebAssembly

Pion WebRTC can be used when compiled to WebAssembly, also known as Wasm. In this case the library will act as a wrapper around the JavaScript WebRTC API. This allows you to use WebRTC from Go in both server and browser side code with little to no changes. Check out the example applications for instructions on how to compile and run the WebAssembly examples. You can also visit the Wiki page on WebAssembly Development for more information.

Roadmap

The library is in active development, please refer to the roadmap to track our major milestones.

Community

Pion has an active community on the Golang Slack. Sign up and join the #pion channel for discussions and support. You can also use Pion mailing list.

We are always looking to support your projects. Please reach out if you have something to build!

If you need commercial support or don't want to use public methods you can contact us at team@pion.ly

Related projects

  • pions/turn: A simple extendable Golang TURN server
  • [WIP] pions/media-server: A Pion WebRTC powered media server, providing the building blocks for anything RTC.

Contributing

Check out the contributing wiki to join the group of amazing people making this project possible:

License

MIT License - see LICENSE for full text

You can’t perform that action at this time.