Pure Go implementation of Mediasoup worker .
Motivation is to provide a mediasoup APIs implementation of Pion WebRTC libraries.
Mediasoup worker Protocol
version
stream protocol type
support
< 3.9.0
netstring
☑️
>= 3.9.0
native
☑️
>= 3.10.5
native message wrapper without JSON
☑️
>= 3.13.0
flatbuffers
☑️
cpu: Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
BenchmarkNetNative_WriteBuffer-12 39985699 29.73 ns/op 4 B/op 1 allocs/op
BenchmarkNetNative_ReadBuffer-12 269317 4487 ns/op 12 B/op 3 allocs/op
BenchmarkNetStrings_WriteBuffer-12 7167288 152.0 ns/op 355 B/op 3 allocs/op
BenchmarkNetStrings_ReadBuffer-12 13219642 88.37 ns/op 4 B/op 1 allocs/op
goos: darwin
goarch: arm64
BenchmarkNetNative_WriteBuffer-10 53218015 22.44 ns/op 4 B/op 1 allocs/op
BenchmarkNetNative_ReadBuffer-10 415128 2861 ns/op 12 B/op 3 allocs/op
BenchmarkNetStrings_WriteBuffer-10 11343592 105.2 ns/op 355 B/op 3 allocs/op
BenchmarkNetStrings_ReadBuffer-10 15113563 77.66 ns/op 4 B/op 1 allocs/op
method
support
worker.close
☑️
worker.dump
☑️
worker.getResourceUsage
☑️
worker.updateSettings
WIP
worker.createRouter
☑️
method
support
router.close
☑️
router.dump
☑️
router.createWebRtcTransport
☑️
router.createPlainTransport
WIP
router.createPipeTransport
☑️
router.createDirectTransport
☑️
router.createActiveSpeakerObserver
☑️
router.createAudioLevelObserver
☑️
method
support
transport.close
☑️
transport.dump
☑️
transport.getStats
☑️
transport.connect
☑️
transport.setMaxIncomingBitrate
WIP
transport.setMaxOutgoingBitrate
WIP
transport.produce
☑️
transport.consume
☑️
transport.produceData
☑️
transport.consumeData
☑️
method
support
producer.close
☑️
producer.dump
☑️
producer.getStats
☑️
producer.pause
WIP
producer.resume
WIP
producer.enableTraceEvent
WIP
method
support
consumer.close
☑️
consumer.dump
☑️
consumer.getStats
☑️
consumer.pause
WIP
consumer.resume
WIP
consumer.setPreferredLayers
WIP
consumer.setPriority
WIP
consumer.requestKeyFrame
WIP
consumer.enableTraceEvent
WIP
method
support
dataProducer.close
WIP
dataProducer.dump
WIP
dataProducer.getStats
WIP
method
support
dataConsumer.close
WIP
dataConsumer.dump
WIP
dataConsumer.getStats
WIP
dataConsumer.getBufferedAmount
WIP
dataConsumer.setBufferedAmountLowThreshold
WIP
method
support
rtpObserver.close
WIP
rtpObserver.pause
WIP
rtpObserver.resume
WIP
rtpObserver.addProducer
WIP
rtpObserver.removeProducer
WIP
build out executable file.
Replace the worker Binary in mediasoup project.
Logging Level Setting
level
value
Info
i
Debug
d
Error
e
Trace
t
Warn
w
Disable
off
mediasoup
mediasoup-go