#tokio #router #api #api-response #api-bindings #mikrotik #async

mikrotik-rs

用于与MikroTik路由器交互的异步Rust库

4 个版本 (2 个破坏性更新)

0.3.1 2024年7月18日
0.3.0 2024年4月24日
0.2.0 2024年4月4日
0.1.0 2024年3月28日

#248 in 异步

Download history 111/week @ 2024-04-24 5/week @ 2024-05-22 5/week @ 2024-07-03 94/week @ 2024-07-17 23/week @ 2024-07-24 6/week @ 2024-07-31

每月123次下载

MIT 协议

61KB
1K SLoC

mikrotik-rs 📟

docs.rs Crates.io Crates.io License Libraries.io dependency status for latest release Crates.io Total Downloads GitHub Repo stars

此Rust库提供了一个与Mikrotik API交互的异步接口。

功能 🌟

  • 无安全代码 💥:完全使用安全Rust 🦀 构建
  • 零拷贝解析:通过就地解析API响应来避免不必要的内存分配。
  • 并发命令 🚦:支持并发运行多个MikroTik命令,每个命令及其响应通过专用通道管理。
  • 错误处理 ⚠️:考虑到错误处理,确保网络或解析错误被优雅地处理并向调用者报告。

入门 🚀

要在项目中使用此库,请在项目目录中运行以下命令

cargo add mikrotik-rs

或者,您可以手动将库添加到 Cargo.toml 文件中

[dependencies]
mikrotik-rs = "0.3.0"
tokio = { version = "1", features = ["full"] }

确保您已在项目中设置了Tokio,因为库依赖于Tokio运行时。

基本用法 📖

use mikrotik_rs::{command::CommandBuilder, device::MikrotikDevice};
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize the MikrotikClient 🤖 with the router's address and access credentials
    let device = MikrotikDevice::connect("192.168.122.144:8728", "admin", Some("admin")).await?;

    // Execute a command 📝
    let system_resource_cmd = CommandBuilder::new()
        .command("/system/resource/print")
        // Send the update response every 1 second
        .attribute("interval", Some("1"))
        .build();

    // Send the command to the device 📡
    // Returns a channel to listen for the command's response(s)
    let response_channel = device.send_command(system_resource_cmd).await;

    // Listen for the command's response 🔊
    while let Some(res) = response_channel.recv().await {
        println!(">> Get System Res Response {:?}", res);
    }

    Ok(())
}

文档 📚

有关库API的更多详细信息,请参阅文档

贡献 🤝

欢迎贡献!无论是提交错误报告 🐛、功能请求 💡 还是拉取请求 🔄,所有贡献都有助于改进此库。在贡献之前,请阅读CONTRIBUTING.md 文件中的指南。

许可 📝

本项目采用MIT许可 - 有关详细信息,请参阅LICENSE 文件。

免责声明 🚫

此库与MikroTik无官方关联。它作为一个开源项目开发,以方便基于Rust的应用程序与MikroTik设备交互。

依赖关系

~3–11MB
~109K SLoC