#content #setting #getting #cross-platform #x11 #os-level #rust-clipboard

unmaintained clipboard

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

13 releases

Uses old Rust 2015

0.5.0 Sep 22, 2018
0.4.6 Feb 22, 2018
0.4.2 Sep 26, 2017
0.4.0 Jun 19, 2017
0.1.0 Nov 30, 2015

#1005 in Unix APIs

Download history 1940/week @ 2024-07-20 1646/week @ 2024-07-27 1700/week @ 2024-08-03 3153/week @ 2024-08-10 2215/week @ 2024-08-17 1993/week @ 2024-08-24 2166/week @ 2024-08-31 1735/week @ 2024-09-07 1928/week @ 2024-09-14 2267/week @ 2024-09-21 1857/week @ 2024-09-28 1070/week @ 2024-10-05 1621/week @ 2024-10-12 1668/week @ 2024-10-19 1848/week @ 2024-10-26 1653/week @ 2024-11-02

6,918 downloads per month
Used in 185 crates (151 directly)

MIT/Apache

15KB
188 lines

rust-clipboard

rust-clipboard is a cross-platform library for getting and setting the contents of the OS-level clipboard.
It has been tested on Windows, Mac OSX, GNU/Linux, and FreeBSD. It is used in Mozilla Servo.

Appveyor Build Status Travis Build Status

Prerequisites

On Linux you need the x11 library, install it with something like:

sudo apt-get install xorg-dev

Example

extern crate clipboard;

use clipboard::ClipboardProvider;
use clipboard::ClipboardContext;

fn example() {
    let mut ctx: ClipboardContext = ClipboardProvider::new().unwrap();
    println!("{:?}", ctx.get_contents());
    ctx.set_contents("some string".to_owned()).unwrap();
}

API

The ClipboardProvider trait has the following functions:

fn new() -> Result<Self, Box<Error>>;
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–330KB