Skip to main content

Crate kitty_graphics_protocol

Crate kitty_graphics_protocol 

Source
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)