libmudtelnet 2.0.1

low-level Telnet protocol implementation for MUD clients
Documentation
  • Coverage
  • 41.79%
    56 out of 134 items documented0 out of 49 items with examples
  • Size
  • Source code size: 54.74 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 5.6 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 16s Average build duration of successful builds.
  • all releases: 16s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • cpu/libmudtelnet
    3 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • LiquidityC cpu

Build & Test crates.io Docs

libmudtelnet

A low-level Telnet protocol implementation for MUD clients, written in Rust.

libmudtelnet is a fork of libtelnet-rs, which is itself inspired by the libtelnet.

Changelog

See CHANGELOG.md.

Usage

Check src/tests.rs for an example parser. For a larger example, see the Blightmud MUD client that uses libtelnet-rs for its Telnet handling.

First, construct a parser with Parser::new(). Ideally, you would place this parser somewhere directly behind a socket or external source of data.

When data comes in from the socket, immediately send it into the parser with parser.receive(data). This will append it to the current internal buffer, and process and return any telnet events to be looped over and handled as your application requires.

Any text to be sent back over the socket to the remote end should be sent through parser.send_text(data) to ensure data will be encoded properly for the telnet protocol. Data to be sent will be provided either by a events::TelnetEvents::DataSend event after processing, or as a return from any method used for sending data.

Compatibility

The initial release of libmudtelnet has been tested for compatibility with libtelnet-rs. In general while much of the code has been rewritten to be more idiomatic Rust, the API is the same and breaking changes have been avoided. An upcoming semver incompatible release will be made with broader API changes in the near future.

See CHANGELOG.md for more details.

Credits

Many thanks to: