MyNixOS website logo
Description

Bindings to libtelnet.

Binds https://github.com/seanmiddleditch/libtelnet , a C library for writing telnet clients and servers. See README.md or Network.Telnet.LibTelnet to get started.

Bindings to libtelnet

builds.sr.ht status

This is a wrapper around libtelnet, a C library for handling Telnet streams, including option negotiation, &c. As a cleartext protocol, Telnet is thorougly unsuitable for use on the open internet, but you might have a niche where it makes sense:

  • MU* games still use it, and so the clients people want to use only speak Telnet,
  • You might be speaking Telnet inside a stunnel, or
  • You might have some ancient hardware that can't be updated, and doesn't have ssh, but you want to talk to it using Haskell.

This library hews closely to the interface provided by the C libtelnet, so reading the excellent C documentation will help you. The short version goes something like this:

  1. Define an event handler of type Network.Telnet.LibTelnet.EventHandler. This function receives callbacks that tell you what received data should be propagated to the application, and what bytes need to be sent out over the socket.

  2. Pass your event handler (and some other flags) to Network.Telnet.LibTelnet.telnetInit, which will give you access to a Telnet, a garbage-collected state tracker.

  3. Tell the state tracker that data has arrived on the socket, or that you want to send data to the socket, by passing it to the library's other functions.

Other Resources

Metadata

Version

0.1.0.1

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows