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 folder of this repo.
The following example shows a minimal working Rust plugin.
```rust use weechat::{ buffer::Buffer, weechat_plugin, ArgsWeechat, Weechat, WeechatPlugin, };
struct HelloWorld;
impl WeechatPlugin for HelloWorld {
fn init(_: &Weechat, _: ArgsWeechat) -> Result 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 By default the system-wide To prefer a bundled include file A custom include file can be set with the Projects build with Rust-Weechat
README.md
file.Picking the correct Weechat version.
weechat-plugin.h
file will be used if found,
this behaviour can be overridden with two environment flags.WEECHAT_BUNDLED
should be set to true
. The
bundled include file tracks the latest Weechat release.WEECHAT_PLUGIN_FILE
environment
variable, this environment variable takes a full path to the include file.