Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
A Rust library to leverage native OS APIs for optimal performance and high-quality screen recordings. We use Apple's ScreenCaptureKit on macOS and Graphics.Capture APIs on Windows. Linux support is planned but not underway yet, PRs welcome!
🚧 WIP. Unsuitable for production use, APIs are being iterated on.
features
- Cross-platform support: Windows and Mac now, Linux soon.
- Check for support and user permissions.
- Utilize native OS APIs for screen capture.
- Different capture modes: audio, display or window.
contributing
I found most of Rust's tooling around screen capture either non-performant, outdated or very platform-specific. This project is my attempt to change that. It's early days and the code is fairly simple, I'll gladly accept any contributions/PRs.
If you'd like to chip in, here's a kickstart guide:
- Clone the repo and run it with
cargo run
. - Explore the API and library code in
lib.rs
. - Platform-specific code is in the
win
andmac
modules. - There's a small program in
main.rs
that "consumes" the library for dev-testing.
usage
use ;
roadmap
- Check for support and user permissions.
- Capture frames
- Capture targets: monitors, windows, region and audio.
- Encoding: encode frames to file.
license
The code in this repository is open-sourced under the MIT license. However, it may rely on dependencies that are licensed differently. Please consult their documentations for exact terms.
Contributors
credits
This project builds on top of the fabulous work done by @svtlabs and @NiiightmareXD.
- screencapturekit-rs: Rust bindings for Apple's ScreencaptureKit API.
- windows-capture: Rust library for Windows.Graphics.Capture.