Files
monibuca/README.md
2025-01-15 10:25:14 +08:00

4.8 KiB

Contributors Forks Stargazers Issues MIT License


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
  1. About
  2. Getting Started
  3. Usage
  4. Build Tags
  5. Monitoring
  6. Plugin Development
  7. Contributing
  8. License

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

(back to top)

Getting Started

Prerequisites

  • Go 1.18 or higher
  • Basic understanding of streaming protocols

Installation

  1. Create a new Go project
  2. Add Monibuca as a dependency:
    go get m7s.live/v5
    

(back to top)

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.

(back to top)

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

(back to top)

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"]

(back to top)

Plugin Development

Monibuca's functionality can be extended through plugins. For information on creating plugins, see the plugin guide.

(back to top)

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)