Skip to content

selfsame/tenlet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tenlet - a clojure telnet library

[selfsame/tenlet "0.2"]

(use 'tenlet.server)

(def server 
  (create-server 5073 {
    :connect  (fn [client])
    :line     (fn [client string])
    :input    (fn [client char-or-keyword])
    :resize   (fn [client {:keys [w h]}])
    :close    (fn [client])
    :shutdown (fn [server])}))

tenlet.server has two user protocols:

  • (write [client-or-server string])
  • (close [client-or-server])

Writing or closing a server writes or closes all open clients.

The :line handler recieves typical newline delimited input from the client. :input recieves single character input, and is meant to be used with IAC DO LINE mode where individual characters are sent over the socket. :input also recieves keywords from mutli character codes (:arrow-left, :pagedown, etc.)

tenlet.escape namespace has protocol defs and escape code fns for styling, placing the cursor, etc. To enable :resize events, tell the client to use NAWS reporting (write client (str IAC DO NAWS)).

wishlist

  • cross platform
    • :clj
    • :cljs
    • :cljc
  • user handlers for server & client lifecycles
  • Telnet protocol code defs
  • NAWS terminal size reporting
  • helpers for line/char, echo, cursor modes
  • string formatting & escape code decorating namespace

About

clojure telnet server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published