Expand description
Kitty Graphics Protocol - A Rust library for the Kitty terminal graphics protocol
This library provides a complete implementation of the Kitty terminal graphics protocol, allowing you to display images and animations in terminal emulators that support this protocol.
§Features
- Full support for all graphics protocol commands
- Support for RGB, RGBA, and PNG image formats
- Chunked data transmission for large images
- Animation support
- Unicode placeholder support
- Terminal size detection
- Protocol support detection
§Quick Start
use kitty_graphics_protocol::display_png;
// Display a PNG file
display_png("image.png").unwrap();§Advanced Usage
use kitty_graphics_protocol::{Command, ImageFormat, Action};
// Create a command to transmit and display a PNG image
let png_data = std::fs::read("image.png").unwrap();
let cmd = Command::builder()
.action(Action::TransmitAndDisplay)
.format(ImageFormat::Png)
.build();
// Serialize the command to escape sequence chunks
let chunks: Vec<String> = cmd.serialize_chunked(&png_data).unwrap().collect();
for chunk in chunks {
print!("{}", chunk);
}Re-exports§
pub use command::ChunkedSerializer;pub use command::Command;pub use command::CommandBuilder;pub use error::Error;pub use error::Result;pub use image::ImageDisplay;pub use image::clear_all_images;pub use image::display_png;pub use image::display_png_data;pub use response::Response;pub use terminal::WindowSize;pub use terminal::check_protocol_support;pub use terminal::get_window_size;pub use terminal::query_window_size;pub use types::Action;pub use types::AnimationControl;pub use types::CompositionMode;pub use types::Compression;pub use types::CursorPolicy;pub use types::DeleteTarget;pub use types::FrameComposition;pub use types::ImageFormat;pub use types::TransmissionMedium;pub use types::UnicodePlaceholder;
Modules§
- command
- Command building and serialization for the Kitty graphics protocol
- error
- Error types for the Kitty graphics protocol
- image
- High-level image display utilities
- response
- Response parsing for the Kitty graphics protocol
- terminal
- Terminal utilities for the Kitty graphics protocol
- types
- Type definitions for the Kitty graphics protocol
Constants§
- APC_END
- The APC end sequence: ESC \
- APC_
START - The APC (Application Programming Command) start sequence: ESC _
- ESC
- The ESC character (0x1b)
- GRAPHICS_
PREFIX - The graphics command prefix: G
- MAX_
CHUNK_ SIZE - Maximum chunk size for data transmission (4096 bytes)