https://github.com/timvisee/pixelpwnr-cast
:tv: Insanely fast pixelflut client to cast your screen written in Rust.
https://github.com/timvisee/pixelpwnr-cast
37c3 flood hacktoberfest pixelflut pixelpwnr rust screencast
Last synced: about 1 year ago
JSON representation
:tv: Insanely fast pixelflut client to cast your screen written in Rust.
- Host: GitHub
- URL: https://github.com/timvisee/pixelpwnr-cast
- Owner: timvisee
- License: gpl-3.0
- Created: 2023-12-29T16:43:54.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-29T17:55:54.000Z (over 2 years ago)
- Last Synced: 2025-03-26T06:11:16.285Z (about 1 year ago)
- Topics: 37c3, flood, hacktoberfest, pixelflut, pixelpwnr, rust, screencast
- Language: Rust
- Homepage:
- Size: 47.9 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# pixelpwnr-cast
A quick [pixelflut][pixelflut] ([video][pixelflut-video]) client in
[Rust][rust] for use at [37C3][37C3], that streams your screen to pixelflut panels.
For a high performance pixelflut client and server implementations, see:
- [pixelpwnr][pixelpwnr]: client to flut (animated) images
- [pixelpwnr-server][pixelpwnr-server]: server
## Features
* Stream your desktop in real-time
* Many concurrent drawing pipes, fast multithreading
* Control over render sizes and offset
* Automatic image sizing and formatting
* Blazingly fast [binary protocol](https://github.com/timvisee/pixelpwnr-server#the-binary-px-command) (`PB` with `--binary`)
* Linux (X11), Windows and macOS
## Usage
Cast your desktop:
```bash
# Flut your screen
# - To host 127.0.0.1 on port 8080
# - With 4 painting threads
# - With the size of the screen (default)
pixelpwnr-cast 127.0.0.1:8080 -c 4
```
Cast to a small frame:
```bash
# Flut your screen to a small frame
# - To host 127.0.0.1 on port 8080
# - With 4 painting threads
# - With a size of (400, 300)
# - With an offset of (100, 100)
pixelpwnr-cast 127.0.0.1:8080 -c 4 -w 400 -h 300 -x 100 -y 100
```
Use the `--help` flag, or see the [help](#help) section for all available
options.
## Installation
For installation, Git and Rust cargo are required.
Install the latest version of Rust with [rustup][rustup].
Then, clone and install `pixelpwnr-cast` with:
```bash
# Clone the project
git clone https://github.com/timvisee/pixelpwnr-cast.git
cd pixelpwnr-cast
# Install pixelpwnr-cast
cargo install --path .
# Start using pixelpwnr-cast
pixelpwnr-cast --help
# or run it directly from Cargo
cargo run --release -- --help
```
Or just build it and invoke the binary directly (Linux/macOS):
```bash
# Clone the project
git clone https://github.com/timvisee/pixelpwnr-cast.git
cd pixelpwnr-cast
# Build the project (release version)
cargo build --release
# Start using pixelpwnr-cast
./target/release/pixelpwnr-cast --help
```
## Help
```text
$ pixelpwnr-cast --help
Insanely fast pixelflut client for casting your screen
Usage: pixelpwnr-cast [OPTIONS]
Arguments:
The host to pwn "host:port"
Options:
--help Show this help
-s, --screen Screen number (X11 ID) [default: 0]
-w, --width Draw width [default: screen width]
-h, --height Draw height [default: screen height]
-x Draw X offset [default: 0]
-y Draw Y offset [default: 0]
-a, --alpha Alpha channel [0, 255] [default: 255] [default: 255]
-c, --count Number of concurrent threads [default: number of CPUs]
-b, --binary Use binary mode to set pixels (`PB` protocol extension) [default: off]
-f, --flush Flush socket after each pixel [default: true] [default: true] [possible values: true, false]
-f, --frame-buffering Whether to use frame buffering [default: true] [possible values: true, false]
-V, --version Print version
```
## Relevant projects
- [pixelpwnr][pixelpwnr]: client to flut (animated) images
- [pixelpwnr-server][pixelpwnr-server]: server
## License
This project is released under the GNU GPL-3.0 license.
Check out the [LICENSE](LICENSE) file for more information.
[37C3]: https://events.ccc.de/congress/2023/infos/startpage.html
[pixelflut]: https://cccgoe.de/wiki/Pixelflut
[pixelflut-video]: https://vimeo.com/92827556/
[pixelpwnr]: https://github.com/timvisee/pixelpwnr
[pixelpwnr-server]: https://github.com/timvisee/pixelpwnr-server
[rust]: https://www.rust-lang.org/
[rustup]: https://rustup.rs/