Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scufflecloud/scuffle
Opensource Cloud Provider (focusing on video streaming)
https://github.com/scufflecloud/scuffle
live opensource rust streaming svelte video
Last synced: about 10 hours ago
JSON representation
Opensource Cloud Provider (focusing on video streaming)
- Host: GitHub
- URL: https://github.com/scufflecloud/scuffle
- Owner: ScuffleCloud
- License: mit
- Created: 2023-01-28T19:17:28.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-24T20:31:04.000Z (2 days ago)
- Last Synced: 2025-01-26T00:16:05.397Z (1 day ago)
- Topics: live, opensource, rust, streaming, svelte, video
- Language: Rust
- Homepage: https://scuffle.cloud
- Size: 10.3 MB
- Stars: 281
- Watchers: 13
- Forks: 28
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.AGPL-3.0
- Code of conduct: CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
Scuffle
A next-generation open-source cloud provider
> [!WARNING]
> This repository is under active development and may not be stable.---
Welcome to **Scuffle**—a next-generation **open-source cloud provider**! 🚀
We're on a mission to revolutionize **video streaming solutions** with cutting-edge tools and libraries. Dive in and explore what we have to offer! 🔗 [Visit our website](https://scuffle.cloud) to learn more.
## 🛠️ Crates
This repository houses a collection of crates, purpose-built libraries designed to simplify development and enhance functionality:
- ⚡ **[scuffle-batching](./crates/batching)**: Optimized batching and dataloading for external services.
- 🚀 **[scuffle-bootstrap](./crates/bootstrap)**: A utility crate for creating binaries.
- 🔧 **[scuffle-bootstrap-derive](./crates/bootstrap/derive)**: Derive macros for `scuffle-bootstrap`.
- 🔭 **[scuffle-bootstrap-telemetry](./crates/bootstrap/telemetry)**: Telemetry utilities for `scuffle-bootstrap`.
- 📦 **[scuffle-bytes-util](./crates/bytes-util)**: Some helpful utilities for working with bits and bytes.
- 🧭 **[scuffle-context](./crates/context)**: Go-like context utilities for Rust.
- ⌛ **[scuffle-future-ext](./crates/future-ext)**: Extensions for working with futures.
- 📡 **[scuffle-h3-webtransport](./crates/h3-webtransport)**: Enhanced fork of the [h3-webtransport](https://crates.io/crates/h3-webtransport) crate tailored for Scuffle.
- 🦈 **[scuffle-http](./crates/http)**: A high-performance HTTP server supporting HTTP/1.1, HTTP/2, and HTTP/3.
- 📊 **[scuffle-metrics](./crates/metrics)**: Helper crate to instrument your code with metrics.
- 🔧 **[scuffle-metrics-derive](./crates/metrics/derive)**: Derive macros for `scuffle-metrics`.
- 📦 **[postcompile](./crates/postcompile)**: A macro for compiling Rust code at runtime. Useful for snapshot testing.
- 📈 **[scuffle-pprof](./crates/pprof)**: Helper crate for adding pprof support to your application.
- ⚙️ **[scuffle-settings](./crates/settings)**: Tools for managing configuration from environment variables or config files.
- 📶 **[scuffle-signal](./crates/signal)**: Ergonomic async signal handling.### 🎥 Multimedia Crates
Apart from utility crates, we also offer a range of multimedia crates to encode, decode, and transmux media files and streams:
- 🔉 **[scuffle-aac](./crates/aac)**: A crate for decoding AAC audio headers.
- 🗃️ **[scuffle-amf0](./crates/amf0)**: A pure-rust implementation of AMF0 encoder and decoder.
- 🎥 **[scuffle-av1](./crates/av1)**: A crate for decoding and encoding AV1 video headers.
- 🧮 **[scuffle-expgolomb](./crates/expgolomb)**: A set of helper functions to encode and decode exponential-golomb values.
- 🎞️ **[scuffle-ffmpeg](./crates/ffmpeg)**: A safe Rust wrapper around FFmpeg C-bindings.
- 🎥 **[scuffle-flv](./crates/flv)**: A pure Rust implementation of the FLV format, allowing for demuxing of FLV files or streams.---
## 🤝 Join the Scuffle Community
We ❤️ contributions! Check out our [**CONTRIBUTING.md**](./CONTRIBUTING.md) for detailed guidelines on submitting improvements or bug fixes.
Join our [Discord](https://discord.gg/scuffle) to chat with the team and other contributors.
### Sign the Contributor License Agreement (CLA)
To contribute, please sign our [Contributor License Agreement](./CLA.md).
It's quick and easy—[sign here](https://cla.scuffle.cloud) before submitting a pull request.### Code of Conduct
We believe in fostering an inclusive and respectful community.
Please read our [**Code of Conduct**](./CODE_OF_CONDUCT.md) for more details.## 💖 Support Us
If you find Scuffle valuable, consider supporting us on [**Open Collective**](https://opencollective.com/scuffle). Your contributions help us continue to improve and maintain this open-source project.
[![Open Collective](https://a11ybadges.com/badge?logo=opencollective)](https://opencollective.com/scuffle)
---
## 📜 Licensing Overview
Scuffle uses **different licenses** for various components. Here's a quick general overview:
- **Libraries**: Licensed under [MIT](./LICENSE.MIT) or [Apache-2.0](./LICENSE.Apache-2.0).
- **Executable Binaries**: Licensed under [AGPL-3.0](./LICENSE.AGPL-3.0).Each component includes specific licensing details in its `README.md` and corresponding license files. For any questions, feel free to [open an issue](https://github.com/ScuffleCloud/scuffle/issues) or email us at [[email protected]](mailto:[email protected]).
---
## 🛡️ Security Matters
Your security is our priority. 🔒 Refer to our [**Security Policy**](./.github/SECURITY.md) for guidelines on reporting vulnerabilities.
---
## 📋 Additional Resources
- 🔍 [**Public Issue Tracker**](https://jira.scuffle.cloud)
- 📊 [**Kanban Board**](https://scuffle.notion.site)
- 📰 [**Scuffle Blog**](https://bytes.scuffle.cloud)---
## ⭐ Star History
[![Star History Chart](https://api.star-history.com/svg?repos=scufflecloud/scuffle&type=Date)](https://star-history.com/#scufflecloud/scuffle&Date)
---
*Thank you for being part of our journey! Let's build something amazing together.* ✨