Crate openconnect_core

Source
Expand description

§Openconnect Core Library

This library provides a safe Rust API for interacting with underlying Openconnect C library. The unsafe bindings are provided by the openconnect-sys crate.

§Prerequisites

Read the openconnect-sys crate documentation for installing prerequisites including native system libraries and headers.

§Usage

  • Add openconnect-core to your Cargo.toml:

    [dependencies]
    openconnect-core = "0.1"
  • Use the library in your code:

    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(())
    }
  • For more use cases, you can checkout our CLI application openconnect-cli.

  • For GUI/CLI applications, you can checkout our github repository Openconnect-RS

Modules§

command
config
elevator
events
ip_info
log
protocols
result
stats
storage

Structs§

VpnClient
VpnClient struct

Enums§

Status
Describe the connection status of the client

Traits§

Connectable
Trait for creating a new instance of VpnClient and connecting to the VPN server