Crates.io | weechat |
lib.rs | weechat |
version | 0.4.0 |
source | src |
created_at | 2019-02-01 09:45:42.38363 |
updated_at | 2020-10-10 12:09:58.110538 |
description | Weechat API bindings for Rust |
homepage | https://github.com/poljar/rust-weechat/ |
repository | https://github.com/poljar/rust-weechat/ |
max_upload_size | |
id | 111957 |
size | 239,321 |
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.
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 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"
);
Are we missing a project? Submit a pull request and we'll get you added!
Just edit this README.md
file.
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.