Pion WebRTC

WebRTC API 的纯 Go 实现。「Pure Go implementation of the WebRTC API」

Github stars Tracking Chart

Pion WebRTC

WebRTC API 的纯 Go 实现。

突破性变化

Pion WebRTC v3.0.0 开始发布了! 查看 发布说明 以了解新功能和突破性变化。
在v3.0.0被标记之前,建议使用v2。查看最新的 v2 版本 标签

使用 Pion WebRTC 时,Go 模块 是强制性的。所以请确保你设置 export GO111MODULE=on,并在导入时明确指定 /v2 或 /v3。

我们正在积极规划,希望得到您的反馈。请在 GitHub 上创建问题或加入 Slack 频道 来关注开发并与维护者交流。

Pion WebRTC 是一个纯 Go 的 WebRTC 实现。它没有任何非 Go 的依赖,也没有第三方 Go 的依赖。它的设计遵循 WebRTC API,但在需要时可能会有偏差。请参阅 DESIGN.md 了解项目的指导原则/灵感。

使用方法

示例应用 包含人们使用 Pion WebRTC 构建的常见事物的代码示例。

example-webrtc-applications 包含更多使用第三方库的全功能示例。

awesome-pion 包含使用 Pion 的项目,并作为真实的使用实例。

GoDoc 是一个自动生成的 API 引用。我们所有的公共 API 都有注释。

FAQ 是对常见问题的解答。如果你有一个问题没有涉及到,请在Slack中提出,我们一直在寻求扩展它。

现在去构建一些很棒的东西吧 这里有一些想法,让你的创造力流动。
将一个视频文件实时发送到多个浏览器,以实现完美同步的电影观看。
将嵌入式设备上的网络摄像头发送到浏览器,无需额外的服务器!
在两台服务器之间安全地发送数据,无需使用 pub/sub。
录制你的网络摄像头,并在服务器端做特效。
构建一个会议应用程序,处理音频/视频,并据此做出决策。

想了解更多关于WebRTC的信息?

请看 《好奇者的 WebRTC》。一本关于 WebRTC 的深度书籍,而不仅仅是关于 API 的。了解ICE、SCTP、DTLS、SRTP的全部细节,以及它们如何共同组成 WebRTC 协议栈。

如果你想调试,这也是一个很好的资源。Leran 交易工具以及如何处理WebRTC问题。

本书与厂商无关,不会有任何 Pion 的特定信息。

WebAssembly

Pion WebRTC 可以在编译成 WebAssembly,也就是 WASM 时使用。在这种情况下,该库将作为 JavaScript WebRTC API 的封装器。这让你可以在服务器和浏览器端代码中使用来自 Go 的 WebRTC,几乎没有任何变化。查看 应用程序示例,了解如何编译和运行 ebAssembly 示例。你也可以访问 WebAssembly 开发的 Wiki 页面 获取更多信息。

路线图

库正在积极的开发中,请参考 路线图 来跟踪我们的主要里程碑。我们还保留了一个 大创意 的列表,这些都是我们想要建立的东西,但还没有明确的计划或资源。如果你想参与其中,这是一个很好的开始。我们也很乐意听到你的想法! 即使您不能亲自实施,也可以激励其他人。

社区

Pion 在 Slack 上有一个活跃的社区。

关注 Pion Twitter,了解项目更新和重要的 WebRTC 新闻。

我们一直在寻求对您项目的支持。如果你有东西要构建,请联系我们! 如果你需要商业支持或者不想使用公开的方法,你可以通过 team@pion.ly 联系我们。

许可证

MIT许可 -- 见 许可 全文。


(The first version translated by vz on 2020.09.26)

Overview

Name With Ownerpion/webrtc
Primary LanguageGo
Program languageGo (Language Count: 5)
PlatformLinux, Mac, Windows
License:MIT License
Release Count259
Last Release Namev3.2.39 (Posted on )
First Release Namev1.0.0 (Posted on )
Created At2018-05-18 23:10:05
Pushed At2024-04-28 03:28:30
Last Commit At2024-04-28 11:13:23
Stargazers Count12.7k
Watchers Count264
Fork Count1.6k
Commits Count2k
Has Issues Enabled
Issues Count939
Issue Open Count68
Pull Requests Count1178
Pull Requests Open Count15
Pull Requests Close Count425
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Pion WebRTC is a pure Go implementation of WebRTC. It has zero non-Go dependencies and no 3rd party Go dependencies. It is designed to follow WebRTC API, but may deviate when required.
See DESIGN.md for the guiding principals/inspirations of the project.

Usage

example applications contains code samples of common things people build with Pion WebRTC.

example-webrtc-applications contains more full featured examples that use 3rd party libraries.

awesome-pion contains projects that have used Pion, and serve as real world examples of usage.

GoDoc is an auto generated API reference. All our Public APIs are commented.

FAQ has answers to common questions. If you have a question not covered please ask in Slack we are always looking to expand it.

Now go build something awesome! 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.
We also maintain a list of Big Ideas these are things we want to build but don't have a clear plan or the resources yet.
If you are looking to get involved this is a great place to get started! We would also love to hear your ideas! Even if you can't implement it yourself, it could inspire others.

Community

Pion has an active community on the Slack.

Follow the Pion Twitter for project updates and important WebRTC news.

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

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

To the top