Version 51 of Tcllib Contents

Updated 2013-09-14 14:12:14 by pooryorick

This page is a summary of the packages in the Tcllib distributions. Commands provided by each package are not listed, and we ask the reader to consult the regular documentation instead. The companion page Tcllib Location provides the information on where to find this documentation. Most of the packages have their own pages here on the Wiki as well, providing examples, discussions, tips and tricks. These pages often also refer directly to the regular documentation for that package.


Tcllib has new code added to it all the time. If the version of Tcllib you are using doesn't have one of these packages, try the latest sources from the repository. For information on obtaining the lastest version see Tcllib Location


  1. aes - Advanced Encryption Standard.
  2. amazon s3 - Access to Amazon's Simple Storage Service. xsxp, S3
  3. asn - asn.1 BER encoder/decoder
  4. autoproxy - code to automate the use of HTTP proxy servers
  5. base32 - Base32 encoding and decoding of strings and files. base32::hex, base32::core
  6. base64 - Base64 encoding and decoding of strings and files. base64, uuencode, yencode
  7. bee - BitTorrent serialization encoder/decoder.
  8. bench - Benchmarking support, generation, import/export. bench::out::text, bench::out::csv, bench::in
  9. bibtex - Neil Madden's parser for bibtex files.
  10. blowfish - Frank Pilhofer's Tcl implementation.
  11. cache - provides objects which cache data in memory
  12. calendar - Calendar operations (see also tcllib calendar module).
  13. clock - parsing ISO 8601 date/time strings
  14. cmdline - Various form of command line and option processing.
  15. comm - Socket based interprocess communication. Emulates the form of Tk's send command.
  16. control - procedures for tcl flow structures such as assert, do/until, do/while, no-op
  17. coroutine - event and channel support built on top of coroutines
  18. counter - procedures for counters and histograms
  19. crc - Computation of various CRC checksums for strings and files.
  20. csv - manipulate comma separated value data
  21. debug::caller - debug narrative core
  22. des - Data Encryption Standard.
  23. dns - interact with the Domain Name Service.
  24. docstrip - Lars Hellstroem's literate programming support module
  25. doctools - System for writing manpages/documentation in a simple, yet powerful format. Also doctools2base, doctools2idx, and doctools2toc
  26. exif - Extract EXIF fields from digital images exif::analyze exif::fieldnames
  27. fileutil - Utilities for operating on files, emulating various unix command line applications (cat, find, file(type), touch, traverse, ...).
  28. ftp - Client side implementation of FTP (File Transfer Protocol). In dire need of a rewrite.
  29. ftpd - Server side implementation of the FTP protocol.
  30. fumagic - Unix file/magic file recognition, by AK
  31. generator - generators for Tcl
  32. gpx - extract waypoints, tracks and routes from GPX files (where is this code in tcllib???)
  33. grammar_aycock - generate John Aycock based parsers
  34. grammar_fa - Operations on finite automatons (class for acceptors constructed from deterministic finite automatons)
  35. grammar_me - Matching Engines, for parsers.
  36. grammar_peg - Operations on Parsing Expression Grammars, and their interpretation (aka matching, parsing)
  37. hook - ensemble command implementing subject/observer pattern
  38. html - generate HTML from a Tcl script.
  39. htmlparse - procedures to permit limited manipulation of strings containing HTML-formatted text. Core is a sax-style based parser. This is extended by commands for the conversion into a ::struct::tree, and removing parts of the tree.
  40. http - import from the wiki of autoproxy
  41. ident RFC 1413 ident client protocol implementation.
  42. imap4 - currently undocumented code for interacting with an IMAP server.
  43. inifile - code to manipulate a Microsoft Windows initialization file (the per-application text-based precursor to the registry).
  44. interp - interpreter utilities, runtime envs, delegation commands
  45. irc - Internet Relay Chat procedures.
  46. javascript - generate Javascript for including in HTML pages.
  47. jpeg - edit comment blocks, get image dimensions and information, read exif data of images in the JPG format.
  48. json - Conversion of data in JavaScript Object Notation to Tcl structures (dictionaries).
  49. lambda - anonymous functions
  50. ldap - Client side implementation of LDAP (Lightweight Directory Access Protocol).
  51. log - general procedures for adding log entries to files.
  52. logger - Another log mechanism, with a different API than log. Hierarchical instead of flat (part of the log module).
  53. map - common code for slippy based map packages. Where slippy is a term coming from http://openstreetmap.org
  54. mapproj - convert between world coordinates and map coordinates, for various projections.
  55. math - general mathematical procedures, and additional mathematical packages. A list of the latter can be found on the referenced page.
  56. md4 - Calculation of the MD4 cryptographic hash / message digest (MD).
  57. md5 - Calculation of the MD5 cryptographic hash / message digest (MD).
  58. md5crypt - MD5 crypt password encryption algoritm, for replacing the unix crypt function - ::md5crypt::md5crypt, ::md5crypt::aprcrypt
  59. mime - provide commands for creating and manipulating MIME body parts. - ::mime::initialize, ::mime::parsepart, ::mime::finalize, ::smtp::sendmessage
  60. multiplexer - generic system for one-to-many communication using sockets
  61. namespacex - utility commands for working with namespaces
  62. ncgi - procedures for use in a CGI application.
  63. nmea - nmea gps messages
  64. nns - nano-sized name service based on, and for, comm
  65. nntp - routines for interacting with a usenet news server via the NNTP protocol.
  66. ntp - network time protocol
  67. ooutil - convenience command for the easy specification of instance methods as callback commands
  68. otp - RFC 2289 one-time password
  69. page - Classes for a parser generator, and general text transformations.
  70. pki - implementation of RSA public key cipher
  71. pluginmgr - code for managing plugins, by AK
  72. png - edit comment blocks, get image dimensions and information for Portable Network Graphics format.
  73. pop3 - Post Office Protocol (POP) functions for reading mail from a pop3 server.
  74. pop3d - Post Office Protocol Server.
  75. profiler - simple Tcl source code profiler. ::profiler::tZero, ::profiler::tMark, ::profiler::stats, ::profiler::Handler, ::profiler::profProc, ::profiler::init
  76. pt - parser tools application
  77. rc4 - stream encryption using the ARCFOUR algorithm.
  78. rcs - AK and Colin McComack's code for RCS operation commands
  79. report - format matrices in various tabular report styles.
  80. rest - handle REST internet API
  81. ripemd - Calculation of the RIPE-MD cryptographic hash / message digest (MD).
  82. sasl - Simple Authentication and Security Layer framework, by PT
  83. sha1 - Calculation of the SHA1 cryptographic hash / message digest (MD). SHA stands for Secure Hash Digest.
  84. simulation - packages useful for simulations. Includes annealing, montecarlo, and random packages.
  85. smtpd - SMTP server implementation.
  86. snit - Snit's Not Incr Tcl - OO package. Delegation based.
  87. soundex::knuth - string matching based on theoretical sound of the letters
  88. stooop - OO package, using C++ like syntax and behavior.
  89. string::token - Regex based iterative lexing
  90. stringprep - Preparation of Internationalized Strings, allowing definition of profiles and ability to prepare unicode strings for comparison as defined in RFC 3454.
  91. struct - various data structures such as disjointset, struct::graph, struct::list, matrix, pool, prioqueue, queue, record, struct::set, skiplist, stack, tree, record. For graphs we also have a companion package struct::graphop providing a number of graph algorithms.
  92. tar - untar, list, and stat files in tarballs and create new tarballs
  93. tepam - Tcl's Enhanced Procedure and Argument Manager (tepam) provides a new procedure declaration syntax
  94. term - low level terminal control (control codes, etc.)
  95. textutil - Utilities for working with larger bodies of texts, including adjust, repeat, split, string, tabify, trim
  96. textutil::expand - the core for the expand macro processor (By William Duquette).
  97. tie - Persistence for Tcl arrays.
  98. tiff - Read and write image metadata, read and write uncompressed images.
  99. transfer - class handling and organizing various types of data transfers across sockets
  100. treeql - Tree Query Language, inspired by COST, operating on ::struct::trees.
  101. try - programming structure for handling exceptions
  102. uev / uevent - User level events without Tk
  103. units - convert and manipulate quantities with units
  104. uri - Handling of uri/urls (splitting, joining, ...)
  105. uuid - Creation of unique identifiers.
  106. valtype - validation types with a consistent error code raised
  107. virtchannel_base - re-implemention of memchan's channel types random, string, variable, randomseed, halfpipe, and textwindow
  108. virtchannel_core - support packages for initialization, finalization, and timer-driven event support
  109. virtchannel_transform - implementation of channel transformations for base64, hex, identity, counter, adler32, adler32pure, crc32, observe, limitsize, spacer, otp, and zlib
  110. wip - words interpretor
  111. yaml - package to parse http://www.yaml.org/ data exchange format
  112. devtools - not installed. This is an experimental package currently only for internal use.
  113. tcllibc - package to cause critcl to generate binary versions of tcllib modules (???)