Version 32 of Channel Implementations

Updated 2015-04-25 21:48:29 by pooryorick

This page describe all known channels, including those in extensions. Part of the benefit is so that people implementing new channels can look at how others have done it. - DL


Built-in Channels

file
File/device/process channel (create with open)
sock
TCP channel (create with socket)

Extension Channels

exp
Pty/process channel (create with spawn). Expect extension. [L1 ] Don Libes
tls
SSL channel (create with tls::socket). TLS extension. [L2 ]
x25
X.25 switched virtual circuit (create with x25::socket). x25 extension. [L3 ]
memchan
In-memory channels. memchan extension Andreas Kupries
fifo
In-memory channel, fifo-behaviour. memchan extension (s.a.)
random
In-memory channel providing a random data stream memchan extension
null
In-memory channel that sinks data. memchan extension
zero
In-memory channel that sinks data and emits zeros. memchan extension
mod_dtcl
mod_dtcl has a file channel built in to interact with Apache [L4 ]
CacheOut
CacheOut does just that - it stores everything that goes to stdout from when it is started untill it stops. Can be used by higher level Tcl scripts to cache output (useful for things like web pages). Available at [L5 ]
rchan
Reflective channels - they "reflect" channel-reads, -writes, and -seeks to Tcl, i.e. you create an "rchan" and code the implementation in Tcl. Part of Tclkit and used to build a memchan-lookalike, but now also turned into a separate Critcl extension at [L6 ] by Jean-Claude Wippler. Same idea as reflected channels, but a different (earlier ?) implementation.
iocpsock
high performance sockets for WinNT systems iocpsock
udp
Supports sending and receiving UDP (User Datagram Protocol) packets from Tcl. [L7 ]
storage
The tclstorage package wraps the Microsoft Structured Storage file format and exposes IStream objects via Tcl channels [L8 ]
ftd2xx
Communication with USB devices using the FTDI chipset [L9 ]
twapi
Includes named pipe and TLS/SSL socket channels on Windows
SQLite incrblob [L10 ]
Read/write access to existing database BLOBs. (AMG: At present, has bugs with respect to channel readability events [L11 ].)

A template reflected channel

TclOO Channels

Changing stdout, redefining puts and avoiding console show has some minimal examples of reflected channels and transformers


Other documentation