mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
|
[](https://pkg.go.dev/github.com/haivision/srtgo)
|
||
|
|
||
|
# srtgo
|
||
|
|
||
|
Go bindings for [SRT](https://github.com/Haivision/srt) (Secure Reliable Transport), the open source transport technology that optimizes streaming performance across unpredictable networks.
|
||
|
|
||
|
## Why srtgo?
|
||
|
The purpose of srtgo is easing the adoption of SRT transport technology. Using Go, with just a few lines of code you can implement an application that sends/receives data with all the benefits of SRT technology: security and reliability, while keeping latency low.
|
||
|
|
||
|
## Is this a new implementation of SRT?
|
||
|
No! We are just exposing the great work done by the community in the [SRT project](https://github.com/Haivision/srt) as a golang library. All the functionality and implementation still resides in the official SRT project.
|
||
|
|
||
|
|
||
|
# Features supported
|
||
|
* Basic API exposed to easy develop SRT sender/receiver apps
|
||
|
* Caller and Listener mode
|
||
|
* Live transport type
|
||
|
* File transport type
|
||
|
* Message/Buffer API
|
||
|
* SRT transport options up to SRT 1.4.1
|
||
|
* SRT Stats retrieval
|
||
|
|
||
|
# Usage
|
||
|
Example of a SRT receiver application:
|
||
|
``` go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/haivision/srtgo"
|
||
|
"fmt"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
options := make(map[string]string)
|
||
|
options["transtype"] = "file"
|
||
|
|
||
|
sck := srtgo.NewSrtSocket("0.0.0.0", 8090, options)
|
||
|
defer sck.Close()
|
||
|
sck.Listen(1)
|
||
|
s, _ := sck.Accept()
|
||
|
defer s.Close()
|
||
|
|
||
|
buf := make([]byte, 2048)
|
||
|
for {
|
||
|
n, _ := s.Read(buf)
|
||
|
if n == 0 {
|
||
|
break
|
||
|
}
|
||
|
fmt.Println("Received %d bytes", n)
|
||
|
}
|
||
|
//....
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
|
||
|
# Dependencies
|
||
|
|
||
|
* srtlib
|
||
|
|
||
|
You can find detailed instructions about how to install srtlib in its [README file](https://github.com/Haivision/srt#requirements)
|
||
|
|
||
|
gosrt has been developed with srt 1.4.1 as its main target and has been successfully tested in srt 1.3.4 and above.
|