DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻訳待ち
The core of Membrane Framework, multimedia processing framework written in Elixir
翻訳待ち
Loading the full README.
Read the full README ↗Membrane is a versatile multimedia streaming & processing framework. You can use it to build a media server of your need, that can:
The abbreviations above don't ring any bells? Visit membrane.stream/learn and let Membrane introduce you to the multimedia world!
If you have questions or need consulting, we're for you at our Discord, forum, GitHub discussions, X (Twitter) and via e-mail.
You can also follow Membrane on X (Twitter) or join our Discord to be up to date and get involved in the community.
If you already had a chance to use Membrane, we will be grateful if you could fill out a quick survey to help us improve framework and decide on what to do next.
For people who write Membrane code with AI assistants, we ship a dedicated skill for them.
Membrane is maintained by Software Mansion.
Mix.install([
:membrane_hackney_plugin,
:membrane_mp3_mad_plugin,
:membrane_portaudio_plugin,
])
defmodule MyPipeline do
use Membrane.Pipeline
@impl true
def handle_init(_ctx, mp3_url) do
spec =
child(%Membrane.Hackney.Source{
location: mp3_url, hackney_opts: [follow_redirect: true]
})
|> child(Membrane.MP3.MAD.Decoder)
|> child(Membrane.PortAudio.Sink)
{[spec: spec], %{}}
end
end
mp3_url = "https://raw.githubusercontent.com/membraneframework/membrane_demo/master/simple_pipeline/sample.mp3"
Membrane.Pipeline.start_link(MyPipeline, mp3_url)
This is an Elixir snippet, that streams an mp3 via HTTP and plays it on your speaker. Here's how to run it:
Option 1: Click the button below:
It will install Livebook, an interactive notebook similar to Jupyter, and it'll open the snippet in there for you. Then just click the 'run' button in there.
Option 2: If you don't want to use Livebook, you can install Elixir, type iex to run the interactive shell and paste the snippet there.
After that, you should hear music playing on your speaker :tada:
To learn step-by-step what exactly happens here, follow this tutorial.
The best place to learn Membrane is the membrane.stream/learn website and the membrane_demo repository. Try them out, then hack something exciting!
This repo includes skills/membrane-framework/SKILL.md, a structured guide that helps AI coding assistants write Membrane code.
If you use Claude Code, install it via the plugin system:
/plugin marketplace add membraneframework/membrane_core
/plugin install membrane-framework@membrane
After install, Claude automatically pulls in the skill whenever you work on Membrane code (mentioning Membrane.Pipeline, Bin, Filter, Pad, etc).
If you use Cursor, drop the skill into your project's rules directory:
mkdir -p .cursor/rules && curl -fL https://raw.githubusercontent.com/membraneframework/membrane_core/master/skills/membrane-framework/SKILL.md -o .cursor/rules/membrane-framework.mdc
For a cross-agent install, use skills.sh's CLI via npx:
npx skills add membraneframework/membrane_core -g
For agents skills.sh doesn't support, include the SKILL.md file directly in the agent's context, or copy its contents into whatever instruction file the tool reads.
The most basic media processing entities of Membrane are Elements. An element might be able, for example, to mux incoming audio and video streams into MP4, or play raw audio using your sound card. You can create elements yourself, or choose from the ones provided by the framework.
This is the beginning of the README. Read the rest at the original. Read the full README ↗