README.md
erl_tools
=========
Misc Erlang Tools
Sequences / Iterators:
* fold: folds
* pfold: partial folds
* sink: push-style data consumer callbacks
* igen: impure generators
* iseq: infinite sequences implemented as thunks
* source: pure, idempotent sequences
Core abstractions and algorihtms
* obj: processes with Map state
* type_base: serializable data types
* tools: grab bag of function
* diff: compute datastructure diffs
* run: running scripts
Distributed systems:
* epid: multi-hop pids for fine grained objects / processes + dataflow abstraction
* throttle: data throttling
TCP
* serv: simple server tools
* serv_tcp: simple tcp server with connection list
* http: gen_tcp wrappers
* cowboy_wrap: wrappers for cowboy web server
Networking tools
* reverse_tunnel: e.g. for reverse SSH (not what you think)
* socks_proxy: socks5 proxy server
* bert_rpc: BERT RPC support
* ssh_leaf: interacti with ssh machine (commands, rsync, log events)
Web
* ws: erl<->js comm protocol based on WebSockets on top of cowboy
* ws_widget: actor based web widgets on top of ws
* ws_layout: layout functions for ws_widget style web widgets.
* exml: misc exml functions
* serv_ws: stand-alone websocket server
* stack_ws: forth-based websocket protocol for serv_ws
Database
* sqlite: SQLite wrappers
* kvstore: generic key value store interface
* sqlite_kvstore: kvstore on top of sqlite wrapper
* sqlite3_ckeys: composite key store on top of sqlite
Microcontroller development, See also uc_tools/gdb
* rsp: GDB RSP protocol
* gdbstub: gdb stub in Erlang (wip)
* gdbstub_hub: server for gdbstubs
* gdb: gdb MI access
* lab_board: driver for uc_tools/gdb based lab control boards
* tag_u32: Simple structured binary message format + directory structure
* leb128: Efficient storage format for tag_u32 structures based on LEB128 integers
* epid_cproc: C code generation for cproc.h dataflow networks
* epid_dag: Erlang-embedded higher order abstract syntax for distributed dataflow networks
Logging
* recorder: log file recording (also used for a/v recording)
* player: log file player (also for a/v playback)
Development support
* expect: Use Erlang parser to create "expect tests"
* hs: Haskell bindings
* redo: implementation of Redo build system in Erlang
* reflection: Code handling Erlang and other language compilation
* ghcid/ghci: interact with GHCId and GHCI
* emacs: emacs interfacing
Low level drivers
* gpio_poll: map gpio events to Erlang events (erl/C)
* v4l: Video For Linux (erl/C)
* ftdi/ftdi_hub: manage multiple FTDI connections (e.g. uC dev boards)
* rigol: interface with Rigol oscilloscope
* linux: misc linux system interfacing
And some doodles that are not worth mentioning.