weechat

Crates.ioweechat
lib.rsweechat
version0.4.0
sourcesrc
created_at2019-02-01 09:45:42.38363
updated_at2020-10-10 12:09:58.110538
descriptionWeechat API bindings for Rust
homepagehttps://github.com/poljar/rust-weechat/
repositoryhttps://github.com/poljar/rust-weechat/
max_upload_size
id111957
size239,321
Damir Jelić (poljar)

documentation

README

Build Status Docs License: MIT

Rust-Weechat

Weechat is an extensible chat client.

Rust-Weechat is a high level Rust library providing an API for building Weechat plugins.

It wraps the Weechat C plugin API as safe Rust bindings.

Project Status

This project is in a decently stable state, many things that the Weechat plugin API allows are exposed in a higher level safe API. Many things still need to be figured out and exposed safely. Breaking changes might still get introduced.

Experimental or unsound features are gated behind feature flags.

Example

Example plugins can be found in the examples part of the repository.

The following example shows a minimal working Rust plugin.

use weechat::{
    buffer::Buffer,
    weechat_plugin, Args, Weechat, Plugin,
};

struct HelloWorld;

impl Plugin for HelloWorld {
    fn init(_: &Weechat, _: Args) -> Result<Self, ()> {
        Weechat::print("Hello from Rust");
        Ok(Self)
    }
}

impl Drop for HelloWorld {
    fn drop(&mut self) {
        Weechat::print("Bye from Rust");
    }
}

weechat_plugin!(
    HelloWorld,
    name: "hello",
    author: "Damir Jelić <poljar@termina.org.uk>",
    description: "Simple hello world Rust plugin",
    version: "1.0.0",
    license: "MIT"
);

Projects build with Rust-Weechat

Are we missing a project? Submit a pull request and we'll get you added! Just edit this README.md file.

Picking the correct Weechat version.

By default the system-wide weechat-plugin.h file will be used if found, this behaviour can be overridden with two environment flags.

To prefer a bundled include file WEECHAT_BUNDLED should be set to true. The bundled include file tracks the latest Weechat release.

A custom include file can be set with the WEECHAT_PLUGIN_FILE environment variable, this environment variable takes a full path to the include file.

Commit count: 421

cargo fmt