4.8 KiB
Monibuca v5
A highly scalable high-performance streaming server development framework developed purely in Go
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
About
Monibuca is a powerful streaming server framework written entirely in Go. It's designed to be:
- 🚀 High Performance - Built for maximum efficiency and speed
- 📦 Modular - Plugin-based architecture for easy extensibility
- 🔧 Flexible - Highly configurable to meet various streaming needs
- 💪 Scalable - Designed to handle large-scale deployments
Getting Started
Prerequisites
- Go 1.18 or higher
- Basic understanding of streaming protocols
Installation
- Create a new Go project
- Add Monibuca as a dependency:
go get m7s.live/v5
Usage
Here's a basic example to get you started:
package main
import (
"context"
"m7s.live/v5"
_ "m7s.live/v5/plugin/debug"
_ "m7s.live/v5/plugin/flv"
_ "m7s.live/v5/plugin/rtmp"
)
func main() {
m7s.Run(context.Background(), "config.yaml")
}
For more examples, check out the example directory.
Build Tags
The following build tags can be used to customize your build:
| Build Tag | Description |
|---|---|
| disable_rm | Disables the memory pool |
| sqlite | Enables the sqlite DB |
| sqliteCGO | Enables the sqlite cgo version DB |
| mysql | Enables the mysql DB |
| postgres | Enables the postgres DB |
| duckdb | Enables the duckdb DB |
| taskpanic | Throws panic, for testing |
Monitoring
Monibuca supports Prometheus monitoring out of the box. Add the following to your Prometheus configuration:
scrape_configs:
- job_name: "monibuca"
metrics_path: "/api/metrics"
static_configs:
- targets: ["localhost:8080"]
Plugin Development
Monibuca's functionality can be extended through plugins. For information on creating plugins, see the plugin guide.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.