#events

telnet

A simple implementation of telnet protocol

9 releases

0.2.3 Feb 14, 2025
0.2.2 Oct 6, 2024
0.2.1 Oct 23, 2021
0.1.4 Jul 17, 2019
0.1.0 Dec 22, 2017

#241 in Network programming

Download history 244/week @ 2024-12-04 399/week @ 2024-12-11 149/week @ 2024-12-18 35/week @ 2024-12-25 143/week @ 2025-01-01 267/week @ 2025-01-08 357/week @ 2025-01-15 315/week @ 2025-01-22 408/week @ 2025-01-29 712/week @ 2025-02-05 803/week @ 2025-02-12 579/week @ 2025-02-19 345/week @ 2025-02-26 350/week @ 2025-03-05 370/week @ 2025-03-12 267/week @ 2025-03-19

1,382 downloads per month
Used in 5 crates

MIT license

51KB
643 lines

telnet-rs

Build Status MIT licensed crates.io API docs

A simple Telnet implementation.

Examples

Blocking Reading

use telnet::{Telnet, Event};

fn main() {
    let mut telnet = Telnet::connect(("ptt.cc", 23), 256)
            .expect("Couldn't connect to the server...");

    loop {
        let event = telnet.read().expect("Read error");

        if let Event::Data(buffer) = event {
            // Debug: print the data buffer
            println!("{:?}", buffer);
            // process the data buffer
        }
    }
}

Non-Blocking Reading

use telnet::{Telnet, Event};

fn main() {
    let mut telnet = Telnet::connect(("ptt.cc", 23), 256)
            .expect("Couldn't connect to the server...");

    loop {
        let event = telnet.read_nonblocking().expect("Read error");

        if let Event::Data(buffer) = event {
            // Debug: print the data buffer
            println!("{:?}", buffer);
            // process the data buffer
        }

        // Do something else ...
    }
}

Writing

use telnet::Telnet;

fn main() {
    let mut telnet = Telnet::connect(("ptt.cc", 23), 256)
            .expect("Couldn't connect to the server...");

    let buffer: [u8; 4] = [83, 76, 77, 84];
    telnet.write(&buffer).expect("Read error");
}

TODOs

  • reduce unnecessary data copy
  • add coverage check
  • add crate-level documentation

Dependencies

~100KB