/screencapturekit-rs

Safe rust wrapper around Apple's ScreenCaptureKit

Primary LanguageRustApache License 2.0Apache-2.0

screencapturekit-rs

All Contributors Build

Introduction

ScreenCaptureKit is a high-performance screen capture framework for macOS applications. It provides fine-grained control to select and capture specific content on the screen, such as an app window, and is particularly useful in video conferencing apps where users can choose to share only part of their screen. This Rust wrapper aims to provide a safe and easy-to-use interface to the ScreenCaptureKit framework.

Features

  • High Performance: ScreenCaptureKit is performance-focused and leverages the power of Mac GPUs with a lower CPU overhead than existing capture methods.

  • Fine-Grained Control: With ScreenCaptureKit, you can specify the type of content you want to share or filter out. You can capture screen content from any combination of displays, applications, and windows as well as the audio that goes with it.

  • Flexible Configuration: ScreenCaptureKit supports a variety of developer controls, including pixel format, color space, frame rate, and resolution, and on the audio side, controls such as sample rate and channel count. All of these filters and configurations can be adjusted on the fly, allowing for more flexibility in application design.

  • Privacy: ScreenCaptureKit is built with privacy in mind, providing global privacy safeguards for all applications using the framework. The framework will require consent before capturing video and audio content, and the choice will be stored in the Screen Recording privacy setting in system preferences.

More information.

Usage

To use this wrapper, you need to follow a few steps:

// TBD

Dependencies

The ScreenCaptureKit Safe Rust Wrapper depends on the following:

License

Licensed under either of

at your option.

Contributing

We appreciate contributions in the form of bug reports, fixes, feature requests etc, and will review them as time permits. Please keep in mind that this project is experimental and the maintainers' time is limited.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Per Johansson
Per Johansson

💻 🤔 🚧
Tokuhiro Matsuno
Tokuhiro Matsuno

💻
bigduu
bigduu

💻

This project follows the all-contributors specification. Contributions of any kind welcome!