#vpn #security #networking #openconnect

openconnect-core

OpenConnect VPN 交互库

5 个版本

0.1.5 2024 年 4 月 18 日
0.1.4 2024 年 4 月 18 日
0.1.0 2024 年 3 月 17 日

#1140网络编程

Download history 401/week @ 2024-04-13 39/week @ 2024-04-20 4/week @ 2024-05-18 1/week @ 2024-05-25

206 每月下载量

LGPL-2.1

1MB
12K SLoC

Openconnect 核心库

此库提供用于与底层 Openconnect C 库交互的安全 Rust API。不安全绑定由 openconnect-sys crate 提供。

先决条件

阅读 openconnect-sys crate 文档,了解如何安装先决条件,包括本地系统库和头文件。

用法

  • openconnect-core 添加到您的 Cargo.toml

    [dependencies]
    openconnect-core = "0.1"
    
  • 在您的代码中使用库

    use openconnect_core::{
        config::{ConfigBuilder, EntrypointBuilder, LogLevel},
        events::EventHandlers,
        protocols::get_anyconnect_protocol,
        Connectable, VpnClient,
    };
    use std::env;
    
    fn main() -> Result<(), Box<dyn std::error::Error>> {
        let protocol = get_anyconnect_protocol();
        let config = ConfigBuilder::default().loglevel(LogLevel::Info).build()?;
        let event_handlers = EventHandlers::default();
        let client = VpnClient::new(config, event_handlers)?;
    
        let entrypoint = EntrypointBuilder::new()
            .server("vpn.example.com")
            .username("your_username")
            .password("your_password")
            .protocol(protocol)
            .enable_udp(true)
            .accept_insecure_cert(true)
            .build()?;
    
        client.connect(entrypoint)?;
    
        Ok(())
    }
    
  • 有关更多用例,您可以查看我们的 CLI 应用程序 openconnect-cli

  • 对于 GUI/CLI 应用程序,您可以查看我们的 github 仓库 Openconnect-RS

依赖关系

~13–59MB
~1M SLoC