rust-motion (Python SDK)
High-performance, browser-free, programmatic video rendering engine for Python.
Zero Chromium. Zero Puppeteer. Zero Node.js. 100% Pure Rust Native Speed.
Installation
pip install rust-motion
(Prerequisite: ffmpeg installed on your system PATH)
Quick Start
1. Render a Video in 3 Lines
import rust_motion
rust_motion.render(
composition="HelloWorld",
output="video.mp4",
props={"title": "Hello from Python", "subtitle": "Rendered in 0.3s"},
width=1920,
height=1080,
fps=30.0,
duration=90,
)
2. Render a Still Frame (Thumbnail / Poster)
import rust_motion
rust_motion.render_still(
composition="HelloWorld",
frame=30,
output="thumbnail.png"
)
3. Dynamic Video Templates with Rhai Scripts
import rust_motion
rust_motion.render_script(
script_path="templates/shorts.rhai",
output="shorts.mp4",
props={
"headline": "Breaking AI News",
"caption": "Rendered natively without a browser.",
"tag": "TECH",
},
width=1080,
height=1920, # Vertical 9:16 Shorts / Reels
duration=90,
)
4. Object-Oriented Composition API
import rust_motion
comp = rust_motion.Composition("HelloWorld", width=1920, height=1080, duration=180)
comp.render("output.mp4")
comp.render_still(frame=0, output="cover.png")
Performance Comparison (vs Remotion)
| Metric | Remotion (Node.js + Chromium) | Rust Motion Python SDK | Advantage |
|---|---|---|---|
| Runtime Dependencies | Node.js, Chromium, X11, Mesa | Pure Rust Binary + FFmpeg | Zero Browser Overhead |
| Memory Footprint (RSS) | 1,800 ~ 2,500 MB | 400 ~ 900 MB | 4x ~ 6x Less RAM |
| 720p Render Time | 11.04 s | 0.35 s | 🔥 31x Faster |
| 1080p Shorts Render Time | ~12.0 s | 0.39 s (230 FPS) | 🔥 30x Faster |
| AWS Lambda 10k Cost | $4.60 | $0.15 | 🔥 96.8% Cost Savings |
License
MIT OR Apache-2.0
Metadata
Release files for rust-motion 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rust_motion-1.0.0.tar.gz | 967.7 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| rust_motion-1.0.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| rust_motion-1.0.0-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| rust_motion-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| rust_motion-1.0.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| rust_motion-1.0.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 28.5 MB
Release files / rust_motion-1.0.0.tar.gz
| Download URL | rust_motion-1.0.0.tar.gz |
|---|---|
| Size | 967.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
640d7e465d940f8be24620ced16609a05427cedacbdc7555b05c2a693d953cf0
|
|
BLAKE2b-256 checksum How to use checksums |
b1734fd631234bc190cc45618291b06960ae21a13067fb35e0d1dc81515135c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / rust_motion-1.0.0-cp310-abi3-win_amd64.whl
| Download URL | rust_motion-1.0.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
22df77c149cbaceadb4ad72325b00871cf61163943a7d6529a3a854090d5ad47
|
|
BLAKE2b-256 checksum How to use checksums |
1fa78830db010078824165732f12119914d993e20755490e833f361ba78ff44b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / rust_motion-1.0.0-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | rust_motion-1.0.0-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 5.3 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
449107b0bcbc5bb160635a51a52d8d859ee4f10301c35e4f4b5131c01d03eebc
|
|
BLAKE2b-256 checksum How to use checksums |
8812b75c8ede134db99ab3d2880d807c3aad487a15329b255edc3f9669dd0c30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / rust_motion-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rust_motion-1.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9a017aa5c97672625312ddbfa54df0c356980630b9b19154f0d0a10aacc0f3db
|
|
BLAKE2b-256 checksum How to use checksums |
0ea89617b2336dc1b78952053f0649b8414915c25a13e9b40728078b385da337
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / rust_motion-1.0.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | rust_motion-1.0.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.2 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
8b499417a73f8731c3073af0c53360b47823b6e170ca1d668eff7c9c7590108d
|
|
BLAKE2b-256 checksum How to use checksums |
72fc5dc2c2d4da901fa527de70a8ed7f2f6f891e9b9fa642c273daec87ad6fe9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / rust_motion-1.0.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | rust_motion-1.0.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
883d9c7832ec530b6e3646293d927421f46d3ac789659b06318764d85c79f21f
|
|
BLAKE2b-256 checksum How to use checksums |
ad8cabed061b5036a57429a1a73fc7ec74175f42c992bdab89adc74163f8a0c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|