#wayland-clipboard #clipboard #cross-platform #getting #os-level #fork #clipboard-context

copypasta

copypasta is a cross-platform library for getting and setting the contents of the OS-level clipboard

13 unstable releases (5 breaking)

0.10.1 Feb 5, 2024
0.10.0 Oct 12, 2023
0.9.0 Oct 12, 2023
0.8.2 Feb 17, 2023
0.0.1 Oct 8, 2016

#1 in #getting

Download history 22729/week @ 2024-12-01 21883/week @ 2024-12-08 21214/week @ 2024-12-15 11218/week @ 2024-12-22 12283/week @ 2024-12-29 19621/week @ 2025-01-05 21017/week @ 2025-01-12 17848/week @ 2025-01-19 15459/week @ 2025-01-26 23968/week @ 2025-02-02 21918/week @ 2025-02-09 18526/week @ 2025-02-16 20033/week @ 2025-02-23 17806/week @ 2025-03-02 18386/week @ 2025-03-09 19322/week @ 2025-03-16

77,784 downloads per month
Used in 233 crates (89 directly)

MIT/Apache

17KB
246 lines

copypasta

copypasta is a rust-clipboard fork, adding support for the Wayland clipboard.

rust-clipboard is a cross-platform library for getting and setting the contents of the OS-level clipboard.

Example

extern crate copypasta;

use copypasta::{ClipboardContext, ClipboardProvider};

fn main() {
    let mut ctx = ClipboardContext::new().unwrap();

    let msg = "Hello, world!";
    ctx.set_contents(msg.to_owned()).unwrap();

    let content = ctx.get_contents().unwrap();

    println!("{}", content);
}

API

The ClipboardProvider trait has the following functions:

fn get_contents(&mut self) -> Result<String, Box<Error>>;
fn set_contents(&mut self, String) -> Result<(), Box<Error>>;

ClipboardContext is a type alias for one of {WindowsClipboardContext, OSXClipboardContext, X11ClipboardContext, NopClipboardContext}, all of which implement ClipboardProvider. Which concrete type is chosen for ClipboardContext depends on the OS (via conditional compilation).

License

rust-clipboard is dual-licensed under MIT and Apache2.

Dependencies

~0–10MB
~129K SLoC