# Reflex Bindings to libtelnet This is a [reflex](https://reflex-frp.org/) wrapper around [libtelnet](https://git.sr.ht/~jack/libtelnet-haskell), which lets you describe data flows through the telnet state tracker using reflex `Event`s. This library thinly wraps the libtelnet functions, so you should read [the libtelnet documentation](http://hackage.haskell.org/package/libtelnet) alongside the haddocks for this package. ## Quick Start 1. Assemble a `config :: TelnetConfig t`, which holds the event streams that feed into a telnet state tracker. The easiest way to do this is to call `def` (there is an `instance Reflex t => Default (TelnetConfig t)`) and overwrite the fields you care about using record updates or lenses. You will almost certainly want to overwrite `_cRecv` to be the stream of incoming data from a socket, and `_cSend` to be the stream of outgoing data from your application. 2. Call `telnet config`, and save the resulting `TelnetEvents t`. This structure holds the output event streams from a single telnet state tracker. 3. Wire the ouput events into your application. ## Other Resources * A [telnet echo server](https://git.sr.ht/~jack/reflex-libtelnet/tree/master/reflex-libtelnet-example/src/Main.hs) exists in the [`reflex-libtelnet` repo](https://git.sr.ht/~jack/reflex-libtelnet), outside this package. It is packaged separately so that it can be licensed more permissively, and to minimise `reflex-libtelnet`'s dependency footprint. * Questions should go to the [reflex-libtelnet-discuss](https://lists.sr.ht/~jack/reflex-libtelnet-discuss) mailing list. * Bug reports should go to the [bug tracker](https://todo.sr.ht/~jack/reflex-libtelnet).