Version 47 of Tcllib Contents

Updated 2012-10-19 18:24:54 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 CVS head. For information on obtaining the lastest version or using CVS see Tcllib Location


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