這是一個我個人收集的 Tcl 相關連結網頁。目的是我需要某個連結的時候,可以很快的找到。
Tcl 說明文件中關於語法的說明,總共有 12 條規則。
The more precise meaning of Everything is a string is every value is a string. This is one of the central features of Tcl.
- Tcl Developer Site
- Tcler's Wiki
- tcltk.free.fr - English language Tcl web site in France
- Tcl TIP Collection
- Tcl Source Code (core package)
- Tcl Style Guide
- Tcl/Tk Engineering Manual
- Tcl Threading Model
- TkDocs
- Official library of extensions
- Great Unified Tcl/Tk Extension Repository
- RosettaCode: Tcl
- Example Scripts Everybody Should Have
- Tcl on Windows FAQ
- Expect FAQ
- Forward compatibility
- TCL Windows Help File, and tcl-docs at sourceforge
- Books
- Tcl distributions
- Editor and IDE
- Version control
- Issue tracking
- Compiler
- Debugger
- Code Analysis
- Build System
- Package system
- Wrap tool
- Tests
- Standard Libraries
- Collection and Tool box
- Object-oriented
- Functional Programming
- Interactive Tcl
- CUI
- Tk
- GUI toolkit
- Graphics and Images
- Audio and Sound
- Video
- Channel and file system
- Command line
- Compression
- Concurrency
- Cryptography
- Database
- Data type
- Data struct
- Diff
- Documentation Tools
- Internationalization and localization
- File format
- Fileutils
- Geography
- Networking
- Numeric processing
- Parser Engine
- Procedure Tools
- System
- Text and string
- Time
- Web and Http
- Computing platform
- Container
- Platform
- Language
- Hardware
- Related Project
- Write a Tcl extension
- Tools
- Misc
- Tcl Wikibook
- Object Oriented Programming in Tcl
- The Tcl Database Connectivity interface
- Tcl Programming for Windows
- Tcl/Tk: A Developer's Guide
- Tcl for Web Nerds
- Practical Programming in Tcl and Tk
- Tcl and the Tk Toolkit (2nd Edition): Updated for Tcl/Tk 8.5
- Tcl/Tk 8.5 Programming Cookbook
- Tcl 8.5 Network Programming
- The Tcl Programming Language: Book for Tcl (8.6)
- Tcl/Tk Tutorial
- Tcl Tutorial
- Tcl/Tk tutorial
- Tcl Reference Card
And check Book.
- ActiveTcl: A Batteries Included binary Distribution
- BAWT-Tcl - Batteries Included Setup Program
- IronTcl - is a binary distribution of Tcl and Tk.
- Magicsplat Tcl/Tk for Windows
- VIM
- Notepad++ - For Microsoft Windows environment, supports Tcl syntax highlighting
- kate - Supports Tcl syntax highlighting, Symbol Viewer Plugin
- Komodo Edit
- Eclipse and Eclipse Dynamic Languages Toolkit. DLTK provides Tcl support.
- Visual Studio Code and Tcl for Visual Studio Code, VS Code Tcl Debug, vscode_tcl
- alited - A lite editor, and tclbag.
- Tloona - A Tcl/Tk IDE
- RamDebugger - a debugger and IDE for TCL-TK (require tcllib, tklib, TkImg and TkTreeCtrl)
- TKE Text Editor
Useful info:
- e_menu - menuing system for editors
- Tcl Editors
- IDE
And TDK (Tcl Dev Kit) is open sourced by ActiveState, check
- Fossil SCM - a distributed version control system, bug tracking system and wiki software server
- Git and the Git repository browser gitk
- TkRev - Platform-agnostic GUI supporting CVS, Subversion, Git, and RCS
- tcl-libgit2 - Tcl bindings for the libgit2 library. It is only intended as a demonstration of using CFFI to wrap a fairly substantial shared library (more than 800 functions) and thus lacks a comprehensive test suite though some basic sanity checks are in the tests directory.
- tcl-fogbugz-api - Tcl package for using the FogBugz API
- tcl-jira-api - Tcl package to interface with the JIRA REST API
- Tcl extension for the LLVM C API
- tclquadcode - Experimental Tcl Compiler, requires Tcl 8.6 and llvmtcl. And Godzilla Guides to tclquadcode.
- OttoCompiler - The Tcl-Compiler compiles Tcl-Scripts into native C-Code
- TclProDebug - Upgrade of debugger from classic TclPro to Tcl 8.5+
- Tclgdb - Use gdb breakpoints for Tcl source with Tcl_CreateTrace
- lttngtcl - LTTng trace provider which connects to Tcl_CreateTrace
- ddt - Dynamic Debugging for Tcl
info is a built-in command, provides information about the state of a Tcl interpreter. With info, you can find out about your Tcl environment.
- TclParser - You can get it from TclProDebug, at lib/tclparser folder
- Nagelfar - to read a Tcl program and provide static syntax analysis, and Nagelfar-Vim
- tclchecker - a component of Tcl Dev Kit, is a fork of procheck, the static analysis tool.
And check Scripted Parsing.
- BAWT - Tcl based configurable framework for automatically building C/C++ based software libraries from source code
- kitgen build system - Framework to generate TclkitLite executables, compile Tcl packages and build kit files for different operating systems
- KitCreator - a simple build system for creating a Tclkit
- tcl-act - A simple Tcl/C++ build and packaging system
- Kettle - A build system for pure Tcl, and critcl packages
- teapot - TEA Package Management system built by ActiveState
- teaget - is a tcl only script that can be used as a command line utility to retrieve packages
However, ActiveTcl 8.6.6 does not include teaget this tool (when I test last time).
And you can check Debian packages for Tcl/Tk. I think most Linux distributions include some Tcl/Tk packages.
For example, you can install Tcl/TK at openSUSE:
sudo zypper install tcl tk
And below is Debian and Ubuntu:
sudo apt-get install tcl tk
- freeWrap: FreeWrap distributions are freely available for Linux and Windows operating systems.
- tclexecomp
- Thatch - Create standalone Tcl/Tk apps
- tcltest - a package distributed with Tcl, provides a framework for writing and executing program tests.
Tcllib is a distribution of several packages for Tcl, all written entirely in Tcl, useful in a broad variety of areas. A tklib module also exists under the tcllib project, which contains modules that depend on Tk.
control
is a Tcllib package, provides do
command
for do ... while
or do ... until
flow. For example,
package require control
set index 0
control::do {
incr index
} until {$index > 10}
puts $index
For do-while loop for tcl, you also can check dowhile.tcl.
tcllibc is a term used to refer to the parts of Tcllib written in C. Some packages in Tcllib provide two implementations, one written in pure Tcl for compatibility and low installation overhead and one written in C for speed. You need Critcl if you want to build tclllibc.
- ToclBox - A ToolBox for Tcl
- chiark-tcl - a collection of tcl extensions and bindings to useful libraries, include adns, tinycdb, parts of the nettle crypto library and more)
- tcl-modules - A collection of Pure-Tcl Packages & Utilities
- ycl - short for Yorick's Computing tooLkit, is PYK's collection of miscellaneous procedures and programs.
- til - The Tcl ICE Library
- tcl-hacks - A repository of useful and/or interesting hacks in Tcl
- tclapps: a suite of small applications for Tcl useful as examples and in regular use to a large collection of Tcl programmers
- Sugar - a macro system for the Tcl programming language, and Sugar macros collection
- tcl-gen - General Utilities for Tcl
- TCLtools - Сollection of TCL scripts for Cisco IOS penetration testing
- design-patterns-in-tcl - A collection of popular design patterns implemented in TCL language with TclOO package
- tclstuff
- jbr.tcl
- DGTcl - Tcl packages and Tk widgets
TclOO is both a toolkit for creating object systems, and an object system in its own right. As of Tcl 8.6, is part of the core distribution.
- TclOO @ TIP #257 and TclOO Tricks
- incr Tcl
- Next Scripting Framework: A descendant of XOTcl
- snit - Snit is a pure-Tcl object and megawidget framework
- self - SELF extension, a Tcl package by the same name that was inspired by Self
- tclooh - Minimally extending the TclOO object system to provide more natural object variables
Useful info:
- Inspecting TclOO
- Tclook - A simple TclOO object/class/namespace browser
- tcllib lambda - Utility commands for anonymous procedures
- control::functional - Enhanced support for functional programming in Tcl, with implementations of some common higher-order functions
- fptools - A grab bag of functions that can be useful for FP
- tcl-f - Provides loadable Tcl extension for programming in functional manner
- underscore-tcl - Functional programming utilities for Tcl
As with many things, Tcl is rather unique in this area. Commands themselves can not be passed as arguments to other commands, but their names can, which provides something very similar to first-class functions. Additionally, apply can be used to interpret a value as a function and evaluate it, providing the equivalent of lambda functions.
And check
- eltclsh - an interactive shell for the TCL programming language
- tclreadline - GNU readline for interactive tcl shells
- tcl-linenose - Tcl Binding to the linenoise line editing library
- readcmd.tcl - A command line editing library
A Character-based User Interface is a user interface that features full-screen cursor manipulations to emulate forms, etc.
The abbreviation TUI (text-based user interface) is sometimes used to describe the same thing.
curses is perhaps the most widely-known CUI.
- Tcllib: term - Terminal control
- tcl-tty - Control TTYs and ANSI colour escape sequences from Tcl scripts. Requires parse_args and tclsignal.
- Minimalist Curses - A "minimalist" tcl package for interfacing to curses. And my test.
- tcl-caca - Tcl bindings for Colour ASCII Art library (libcaca)
- tcl-termbox - Tcl bindings for termbox
- ck - Tk-like Curses toolkit on top of Tcl
Tk is a graphical toolkit for Tcl. It allows you to develop graphical applications that run on Windows, Linux, MacOS X and many other platforms.
Tk is equally available as a windowing toolkit for Tcl, Ruby, Perl, Python. TkDocs has the best overview of how this compares.
- Tk
- Ttk - Implementation of the Tk theming engine to provide native look and feel widgets, now included in Tk 8.5
and check:
- Gnocl: Tcl binding to GTK
- TclFltk: a Tcl binding for the Fast Light Tool Kit portable GUI development environment
- tkImg - Additional image formats
- tksvg - An extension for Tk to read SVG images based on nanosvg
- Imgtools - manipulate Tk photo images
- CRIMP - C Raster Image Manipulation Package
- PhotoResize - A single-purpose extension for Tcl to resize/resample photo images
- pixmix - a widget for displaying, zooming, rotating,blending overlapped images
- tcl.gd - Feature-complete Tcl interface to GD graphics drawing library
- tclepeg - provide a tcl extension to the epeg thumbnailing library
- tclmagick - Tcl and Tk Interfaces to GraphicsMagick and ImageMagick
- Tcl-blend2d - TclTk binding for Blend2d
- pure-tcl BMP reader/writer
- Pure Tcl JPEG decoder - A single-file pure Tcl baseline JPEG decoder library
- tcllib exif - to extract and parse EXIF fields from digital images
- tklib plotchart
- ukaz - Graph widget in pure Tcl/Tk
- PLplot - often used to make scientific plots
- ticklecharts - Tcl wrapper for Apache ECharts
For handle image formats, you can check tkImg. PNG is also built-in support in Tcl/Tk 8.6.0 (and above version).
Useful info:
- 3D animation on canvas with Gnuplot
- C Image Processing
- Canvas Object Movement Example
- Graphics with Tcl
- Webcams / Digital Cameras
For barcode:
- tzint - tcl package for libzint barcode encoding library (no Tk needed)
And my project:
- tclqrencode - Tcl interface for libqrencode
- tcl-cairo - Tcl bindings for Cairo library, learn from tclcairo
- tcl-stbimage - Tcl extension for stb_image
- tcl-imagebytes - To and from byte array and Tk photo image
- tcl-opencv - Tcl extension for OpenCV library
- Snack and check Here
- SDL_mixer bindings for Tcl - TclMixer
- TclJACK - A Tcl extension for interacting with the JACK Audio Connection Kit library (jacklib)
- tclmidi - a package to work with Midi files
- flac.tcl - Probably the slowest and most verbose FLAC decoder in the world (for learn more about FLAC)
And volume control:
Now available on SourceForge.
Useful info:
- Audio Edit Utility - a front-end for the 'ffmpeg' command
- VLC Tcl Extension
- MPV Tcl Extension - a Tcl interface to the MPV audio player, using libmpv. You also can check tclmpv.
And my projects:
- tcllibao - Tcl bindings for libao
- tpulsesimple - Tcl bindings for PulseAudio simple API
- tclopenal - Tcl bindings for OpenAL (open audio library)
- tclsndfile - Tcl bindings for libsndfile
- tclopusfile - Tcl bindings for Opusfile library
- tclmpg123 - Tcl bindings for libmpg123
- tcltaglib - Tcl interface for taglib (Abstract API only)
- tclmixer - source code is from SDL_mixer bindings for Tcl, try to link SDL2
- tkvideo - A video widget for use with Windows
- tkmpeg - TK MPEG 1 encoder, Tcl/Tk 8.5/8.6 TEA compatible
- MAWT - Movie Automation With Tcl - a Tcl package based on FFmpeg
Useful info:
- Using Tcl/Tk in Multimedia Applications
- Movie Edit Utility - a front-end for the 'ffmpeg' command
- SnitMPlayer - Widget wrapper for the mplayer media application
And my project:
- tkvlc - A demo to embed libVLC to Tk toolkit widget
- chan - a built-in Tcl command, manipulates channels
- TclVfs
- tcl-fuse - A Tcl interface to the linux kernel's FUSE subsystem
- Tcl Extension Virtual Filesystem Prototype
- di Tcl extension - Filesystem Usage/Information. The di program now provides a Tcl extension starting with version 4.39
- Memchan - In-memory channels for Tcl, and deprecated by tcllib's tcl::chan::memchan, which is available for Tcl >= 8.5.
- Trf - is a Tcl extension based upon the principle of stacked channels. Stacked channels is available at the Tcl-script level (after 8.5). See the chan command for details.
- trofs - Tcl Read-Only Filesystem
- tserialport - tcl package for library libserialport, and check tserialport
- Add a time stamp to each line of output - a useful example of the transchan functionality available in Tcl
And useful info:
- Diskusage - a little utility to help out when your disk gets full (open du command to get info)
- Tcllib cmdline Procedures to process command lines and options
- getopt.tcl - A getopt implementation of tcl that compat with GNU getopt
- tabulate - a command line utility that converts standard input into pretty-printed tables
- autoopts - Tcl module that automatically gives your program a command line interface
And useful info:
- command options - Tcler's Wiki info
tclsh supports here document. For example:
tclsh - << "EOF"
puts [expr 99 + 1]
EOF
- zlib - Core support for zlib compression
- bztcl and wiki page - wrapper for the BZip2 compression library
- bz2:compress and bz2:decompress
- tclzvfs - TCL Zip Virtual File System, Tcl 8.5/8.6 TEA compatible
- tcllib tar - Tar file creation, extraction & manipulation
- tcllib zipfile::decode, tcllib zipfile::encode, tcllib zipfile::mkzip: Access to zip archives, generation of zip archives and build a zip archive
- LZ4
- Zstandard - libzstd bindings for Tcl through Critcl
- Brotli compression format - Uses Critcl
And my project:
- tcl.snappy - Tcl wrapper for snappy library
- Tcl-lzf - Tcl interface to the LibLZF Library
- tcl-archive - A Tcl wrapper for LibArchive
- Thread - brings native thread capabilities to Tcl
- tcllib Coroutine utilities
- csp - Golang inspired concurrency library for Tcl
- tcl-promise - Promises are concurrency primitives that simplify asynchronous programming by allowing you to write the code in a sequential style
- tclfiber - Co-routine based multitasking package for Tcl
- Tasks - Task threading wrapper for Tcl
And useful info:
Distributed Computation is a form of concurrent computing in which multiple programs, perhaps running on different processors, which may be remote, communicate to accomplish tasks.
And check Distributed computation.
And my project:
- tcl-opencl - Tcl extension for OpenCL
- Cryptkit - a Tcl binding to the Cryptlib security toolkit
- NaCl: Networking and Cryptography library
- TclTLS - OpenSSL extension to Tcl
- tcltls - It is a modified TclTLS version. Added support for wolfSSL backend.
- tcl-s2n - Stack a TLS protocol driver on any Tcl channel that supports read and write, using the s2n TLS implementation
- tcl-sha - A Tcl loadable module to do SHA hashes. Compiles as SHA-512, SHA-384, SHA-512/256, SHA-512/224 or compiles as SHA-256, SHA-224.
- ANKH - Andreas Kupries' Hashes. This package provides commands for a variety of cryptographically secure hashes of varying new-ness and strength.
- tcl-tomcrypt - Tcl wrapper for the libtomcrypt library (partial)
- tink-tcl - Tcl bindings for Tink. Tink is a multi-language, cross-platform, open source library that provides secure and easy-to-use cryptographic APIs.
Tcl Database Connectivity (TDBC), part of Tcl 8.6, is a common database access interface for Tcl scripts.
and check:
- Tarray - implements a new Tcl collection data type - typed array
- TclRal - Tcl Relational Algebra Library. It introduces tuple and relation data types and a set of commands that operate on them.
- tclvalue - An extension for Tcl 8.6+ to reflect the Tcl_Obj API into the script level
- type - Allow custom Tcl_ObjTypes to be defined and used in Tcl scripts
- AitCS - Array in the Command's Shadow
- Persistent arrays
And check:
list is a built-in Tcl command, creates a list.
dict is a built-in command for creating and manipulating dictionaries (dicts). A dict, or dictionary, is a list containing an even number of words.
array is a built-in ensemble of commands
that manipulates Tcl's array variables. Array variables can also be manipulated using
arrayName(key)
syntax.
struct - Documentation can be found for various (tcllib) data structures.Provided structures, so far:
- graph
- list
- matrix
- pool
- prioqueue
- queue
- record
- set
- skiplist
- stack
- tree
- disjointset
For graph, you can check:
- tclgraphs - A Tcl extension for graph algorithms and combinatorial optimization
- DiffUtilTcl - A Tcl extension for diff utility functions, like Longest Common Substring
- Eskil: A graphical view of file and directory differences
- tkdiff - a graphical front end to the diff program
And check
- doctools - a set of tools is included so that the tcllib author can write the documentation for his/her module in a format agnostic manner, and then convert the documentation into Unix man pages, HTML, and other formats.
- hyperhelp - Tcl/Tk package do display Markdown like help pages in your Tcl/Tk applications.
- Ruff! - generates reference documentation for Tcl programs using runtime introspection.
- conf.tcl - A tcl package for loading a textual configuration(from file, string, etc) into dict
- tcllib csv - a Tcllib package, provides facilities for working with csv files
- tclcsv - for reading and writing CSV format files
- speedbag - a package for providing accelerated C-based routines for TSV parsing into an array
- tcllib markdown
- caius markdown
- tcl-markdown
- tcl-cmark - Tcl bindings to the cmark-gfm
- cmarktcl - Tcl wrapper for commonmark
And you can check Markdown2Go.
- Tcllib JSON
- yajl-tcl - a Tcl binding for yajl (yet another json library)
- tcl-json
- rl_json - Extends Tcl with a json value type and a command to manipulate json values directly, and rl_json Extensions
- tcl-duktape - Tcl bindings for Duktape, an embedded JavaScript interpreter. It has JSON objects support.
- tDOM adds a JSON parser after v0.9
- tcljsonnet
- JQ - Wrapper for command-line tool, JQ
- Playing XPath with JSON
- xjson.tcl - A Tcl library that validates, collects, composes JSON data against supplied schemas and to/from Tcl datat.
Useful info:
- HDFpp - Interface for Tcl (and optionally Python) to read HDF4 and HDF5 files
And you also can check BessyHDFViewer.
- ooxml - Read and Write Office Open XML "XLSX" since Excel 2007
- Pdf4Tcl
- TCLFPDF - a port of tFPDF from PHP to TCL
- tclMuPdf - a porting of the MuPdf framework
- haru - Tcl bindings for libharu
SenML (RFC8428) stands for Sensor Measurement Lists and is a format for representing lists of sensor values.
- senML - Tcl implementation of a SenSML parser (for JSON) and a SenML wrapper
- tDOM
- TclXML and you can check here
- TclSOAP and Wiki page - supports SOAP and XML-RPC, based on TclDOM (TclDOM is the DOM part of TclXML project). SCM Repositories version (1.6.8) switched TclDOM over to tDOM and add JSON-RPC support, changed by ActiveState.
- Web Services for Tcl
And my project:
- tclxqilla - Tcl extension for XQilla library
- Tcllib YAML module
- TclYAML - provides a Tcl Binding to the libyaml library
- file - Manipulate file names and attributes
- glob - Return names of files that match patterns
- tcllib fileutils - Procedures implementing some file utilities
- tmag - Tcl's libmagic interface
- magic - Tcl bindings for libmagic, based on tcl-cffi
- tcllib nmea - provides a standard interface for writing software which recieves NMEA standard input data
- proj - swig based binding for tcl for the proj.4 library using the new API.
- Shapetcl: Simple shapefile access for Tcl.
And useful info:
- msgcat - a built-in manages Tcl message catalogs for localising text
- tcl-collate - A Tcl interface to strcoll() (or _mbscoll() on Windows). And a Tcl interface to setlocale().
- socket - a built-in Tcl command, opens a TCP network connection
- Tcl UDP extension
- tclpcap - Tcl extension that allows access to the libpcap library (need update)
- scotty - A Tcl extension for building network management (SNMP, ICMP, UDP, DNS) applications
- tclnetsnmp - netsnmp package for TCL 8.6
- ecap-tcl - An eCAP adapter for Tcl
- Netinfo - Protocol, service, network, host and ether info
- Tcllib ldap - LDAP client
- Sensus ldap
- Tcllib ftp - Client-side tcl implementation of the ftp protocol
- socketservertcl - Basic socketserver support in Tcl inspired by libancillary
- tclcan - Tcl interface to Linux SocketCAN
- UPnP - Universal Plug and Play
- Duft - Datagrams and Udp For Tcl
- Hosts - Command line tool and Tcl library for manipulating /etc/hosts
- tcl-ip-console - provides telnet access to the Tcl interpreter of long-running, event-driven programs
- TclRadClient - RADIUS client library written in pure Tcl
- tcl-tcpwrappers - Tcl interface to manage TCP Wrappers
- tcl-dav - Card/CalDAV client library for Tcl
- tcl-libproxy - Tcl bindings for libproxy
- TclXMPP - This project implements an XMPP (RFC-6120 and RFC-6121) library which is to be used for clients, bots and components written in Tcl or Tcl/Tk
- resolve - Advanced name resolution for Tcl scripts
- reuri - High performance URI manipulation package for Tcl
And useful info:
- Modbus - a de facto standard communication protocol and is now a commonly available means of connecting industrial electronic devices
- topcua - OPC Unified Architecture (OPC UA) is a machine to machine communication protocol for industrial automation developed by the OPC Foundation
- expr is a built-in Tcl command, evaluates an expression.
- tcl::mathfunc - The ::tcl::mathfunc namespace provides commands for all the functions available in expr command.
- Tcllib math - Tcl Math Library
- LA - The Hume Linear Algebra Tcl Package
- mathemaTcl - MathemaTcl is a collection of compiled extensions for Tcl, each intended to solve a particular numerical problem
- Mpexpr - Mpexpr is a multiple precision math package for Tcl
- tensor
- VecTcl
- Tcl-FFTW - Tcl wrapper around FFTW
- tomato - math::geometry Tcl package, an opensource geometry 3D library with basics functions for working in 3D space
- ggml-tcl - TCL bindings for ggml, a tensor library for machine learning.
And useful info:
- Cmdargs - A Tcl extension that provides a command-line interface for any user-defined proc
- parse_args - A fast argument parser based on the patterns established by core Tcl commands like [lsort], [lsearch], [glob], [regex], etc.
- tclargp - allows simple and flexible using and parsing optional arguments, source code you can get from BAWT project
- argparse - a feature-heavy argument parser
- named-parameters - Named parameter for Tcl, written in Tcl
- xproc_tcl - An enhanced proc that adds descriptions and tests
- syslog-alert - throttle email notifications from syslog-ng to multiple distribution groups
- prometheus-tcl - a pure Tcl library for instrumenting Tcl scripts with Prometheus metrics
- encoding - a built-in command, manages the conversion of text to and from particular encodings
- regexp - a built-in Tcl command, matches a regular expression in a string
- regsub - a built-in Tcl command, performs substitutions based on regular expression pattern matching
- tcllib textutil
- ICU For Tcl, Tcl bindings for ICU
And useful info:
- Additional string functions
- Regular Expressions
- RegexPlanet's Tcl backend
- mulster, multi-line replacements in text
And my project:
- regex_rez - Tcl bindings for RE2, implement basic function - fullmatch, partialmatch, replace and globalrelpace
- tcl-opencc - Tcl bindings for OpenCC (libopencc)
The clock command performs several operations that obtain and manipulate values that represent times.
This command time will call the Tcl interpreter count times to evaluate script (or once if count is not specified). It will then return a string of the form.
- tclclockmod - Tcl clock extension: faster Tcl-module for the replacement of the standard "clock" ensemble of tcl
- http - Client-side implementation of the HTTP/1.1 protocol
- tclcurl - Tcl wrapper for Curl. Curl got HTTP/2 support when it's linked with the nghttp2 library in version 7.43.0.
- rl_http - A REST-capable, never-blocking HTTP client package that supports HTTPS, keepalive, deflate, chunked encoding for Tcl, NaviServer or AOLserver
- www - HTTP client package with support for HTTP/2, websockets, cookies, authentication and more.
- Tcllib websocket - Tcl implementation of the websocket protocol
- tclwebsocket - A websocket channel for Tcl
- tcl-signalr - SignalR client implementation for Tcl
- Selenium - Selenium info at Tcler's Wiki, and Caius, selenium-tcl
And for html and CGI
- Tcllib html - provides tools to generate HTML programmatically (tcllib module)
- htmlparse - tcllib module
- ncgi - provides commands that manipulate CGI values (tcllib module)
- Tclgumbo - Tcl interface for gumbo library
- tcl-tidy - Tcl bindings for libtidy
- tDOM 9.0 as build option an interface to the gumbo HTML5 parser, which also digests almost any other HTML. (--enable-html5)
And please check Web server and framework.
- tclsass - Tcl interface to the libsass library
- JSMin-Tcl - A Tcl JavaScript minifier
- twv - twv aka Tcl webview (WIP). Tcl extension that provides API for the webview library. Modeled after the Python binding. And Example - Taygete Scrap Book.
- AWS_lambda - Tcl runtime for AWS Lambda and some layers for talking to AWS services and processing image
- aws-tcl - Tcl related resources for AWS
- aws-sdk-tcl - TCL bindings for the AWS SDK C++.
Containers are a method of operating system virtualization that allow you to run an application and its dependencies in resource-isolated processes.
Study:
- Ubuntu-based image
- mini-tcl
- docker-alpine-tcl
- docker-client
- circleci-tcl-gcc-autoconf - Docker image for testing Tcl and C code with CircleCI
- tcl2020-build - Create Docker images
And useful info:
exec is a built-in Tcl command, executes other programs.
The ::tcl_platform is a global array holds useful data concerning the platform on which a specific Tcl interpreter is running.
And useful info:
- Display System Info: About Tcl system information
- MacPorts - Package management system for Mac OS X
- Apple Macintosh and Tcl/Tk
- Tk differences on Mac OS X
- Expect
- Extended Tcl (TclX), and here
- DBus binding for Tcl
- Signal Extension - Unix/POSIX Signal handling for Tcl
- tclsignal - Tcl Signal Extension Tcl 8.5/8.6 TEA compatible.
- tcl-mq - Tcl POSIX Message Queues
- Tulsa - Tcl Unix Local Sockets, provides server, client, and pair UNIX socket(2)s.
- TclLuX - Tcl with the luxury of UNIX, a collection of packages, each offering some loosely-categorized form of UNIX functionality.
- tclbsd - A Tcl package for interfacing to various BSD UNIX system calls and library routines
- tcl-augeas - Tcl bindings for Augeas
- tcl-inotify
- TUAPI - Tcl Unix API, is a thin wrapper over parts of the Unix API.
- named pipe
- tcl-pledge - interface to the OpenBSD pledge/unveil system calls
The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. You can check my test. And check Tcl interface to procfs.
And useful info:
- tcom
- Tcl Windows API extension (TWAPI)
- CAWT - Com Automation With Tcl, based on Twapi to script Microsoft Windows® applications with Tcl
- iocpsock: Winsock2 IOCP channel driver for Tcl, and iocpsock
- tcl-vix - provides an interface to the VIX library for manipulating VMware virtual machines
- Windows Inspection Tool Set
- tclwinhooks - This Tcl extension provides access to winapi function SetWindowsHookEx()
- AndroWish: AndroWish allows to run desktop Tcl and Tk programs almost unaltered on the Android Platform while it opens the door to script a rich set of features on a mobile platform.
- EmTcl: Tcl 8.6 and Jim Tcl in the browser through emscripten
- Wacl - This is a Tcl distribution for WebAssembly. It enables Web developers to embed a Tcl interpreter in the browser and integrate Tcl with JavaScript.
- FireTcl - It's a framework for developing desktop apps using web technology and Tcl, embeds Tcl inside a browser with websocket support
- Tcl/Tk plugin
- Wtk - A variant of the Tk toolkit for GUI development in JS, for use in Browsers
- risc-v assembler - About risc-v assembly language, written in Tcl.
- IA-32/x86 assembler in Tcl
- Tcl Interpreter in C# Application
- Eagle: Eagle (Extensible Adaptable Generalized Logic Engine) is an implementation of the Tcl scripting language for the Common Language Runtime (CLR). Beta 42 release support for building against and running on the .NET Core 2.x runtime (which conforms to the .NET Standard 2.0) has been added.
- Eagle Integration Tutorial
- Garuda: is part of the Eagle project. It is a stubs-enabled native package for Tcl that allows the CLR and Eagle to be loaded and used by Tcl 8.4 or higher on Windows.
And my test for TickleSharp:
- TickleSharp - Binding to the Tcl/Tk scripting language for the .NET platform
- JTcl: JTcl is an implementation of Tool Command Language written in Java. JTcl implements a large extent of Tcl 8.4 syntax and commands, limited only by API restrictions of the Java Virtual Machine.
- tclJBlend - a fork of TclBlend
- Tcl/Java
and my TclBlend backup
- TASH - TclAdaShell - You can extend Tcl with Ada instead of C and you can use Tcl capabilities in an Ada program
- tashy - Ada binding to Tcl/Tk, based on TASH
- ffidl and git repository - Foreign Function Interface
- tcl-cffi - A Foreign Function Interface extension for Tcl
- CInvoke: Another Foreign Function Interface and TclCInvoke
- critcl - Critcl lets you easily embed C code in Tcl
- SWIG - SWIG is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua, Octave, R, Scheme (Guile, MzScheme/Racket, CHICKEN), Scilab, Ocaml, Modula-3, Common Lisp (CLISP, Allegro CL, CFFI, UFFI) and Pike.
- tcc4tcl - a Tcl extension that provides an interface to TCC
Useful info:
- etclface - An Erlang/Tcl Interface
- portcl - portcl helps one create Erlang ports based on Tcl scripts
- otpcl - Open Telecom Platform Command Language a.k.a. Tcl-Flavored Erlang. Right now it's pretty minimal.
- TclForth - A multi-platform desktop Forth system based on Tcl/Tk
- Ftcl - Using Tcl in Fortran programs and vice versa
- Example of a Tcl extension in Fortran
- tcljs (SpiderMonkey) - Tcl extension to execute JavaScript using the SpiderMonkey Javascript interpreter
- tcl-duktape - Tcl bindings for Duktape, an embedded JavaScript interpreter
- gothic - Tcl/Tk Go bindings.
- Example of a Tcl extension in Go
- fpc-tcl - Full wrapper of the Tcl C API for Free Pascal
- Example of a Tcl extension in Free Pascal
- libtclpy - targeting Tcl >= 8.5 and and Python 3.6+, and Experimenting with numPy
- tclpython
- tohil - a feathered serpent, delightful integration between python, the serpent, and TCL
- Tcl'er Wiki info - R
R has bindings to Tcl/Tk (part of R, document).
- tcl-swift-bridge: Swift class library that bridges between Swift and Tcl
- Example of a Tcl extension in Swift
- I2cTcl - I2cTcl for Tcl/Tk on LINUX
- KineTcl, a binding of the OpenNI framework (version 1), providing Tcl with access to MS Kinect (tm), and related sensor systems
- Bluetooth channels on Windows - The iocp_bt package implements Bluetooth client channels on Windows
- obex package - Package obex is an implementation of the OBEX protocol in Tcl. Document and source at github.
- GPIB-Tcl - control measurement equipment through the industry-standard IEEE-488 (GPIB) bus.
- tclvisa - Tcl binding to VISA API. Virtual Instrument Software Architecture (VISA) is, generally speaking, measurement instrument contolling API.
- tcladu - Tcl package supporting multiple ADU100s from Ontrak Control Systems via libusb and SWIG.
- tfirmata - a Tcl implementation of Arduino Firmata 2.3
Useful info:
- piio - supports both gpio and i2c
- tclSenseHat - A library of tcl procedures for interacting with the Raspberry Pi SenseHat
Useful info:
- tcl-nano - A binary Tcl extension for working with the cryptocurrency Nano
- The Jim Interpreter: A small footprint implementation of the Tcl programming language
- ParTcl - a micro Tcl implementation
- Picol - A tiny Tcl interpreter
- Pickle - A tiny TCL like interpreter
目前就我所知,Tcl extension 可以大致上分為二種形式, 一種是使用 C/C++ 與 TEA 架構撰寫的 extension。 可以從 Tcl 社群提供的 Sample extension 開始。
# Replace sample with the name of your extension
wget2 -qO- http://core.tcl.tk/sampleextension/tarball/sample.tar.gz | tar xzv
cd sample
wget2 -qO- http://core.tcl.tk/tclconfig/tarball/tclconfig.tar.gz | tar xzv
# Write your source files
# Edit configure.in
autoconf
# And then the usual:
./configure
make
另外一個使用 C/C++ 開發 Tcl 套件的方式是使用 Critcl (provides on-the-fly compilation and execution of C code).
還有的方式是使用 SWIG 來撰寫。 可以參考相關的文章 Tcl and SWIG as a C/C++ Development Tool.
一種是使用 pure Tcl 所撰寫的 exetnsion, 以 Tcl 檔案的形式或者是 Tcl Modules 的方式發佈。
Tcl Modules(.tm 檔案)在 Tcl/Tk 8.5 被 Tcl core team 所接受,所有的 code 都要放在同一個檔案裡, 這個機制並不是要取代之前的套件機制(使用 pkgIndex.tcl 這個 index script 來提供套件的資訊), 而是在減少彃性, 不用提供 pkgIndex.tcl 的情況下,實作提供 Tcl core 資訊並且減少存取檔案系統次數的套件機制。
- Enhanced Tk Console: tkcon
- ASED, Wiki page - BWidget IDE allowing editing of multiple Tcl files
- aloupe - is a Tcl/Tk small widget/utility allowing to view the screen through a loupe. The Img and treectrl packages have to be installed to run it.
- BallroomDJ - a ballroom music player
- Calc - a Tcl/Tk calculator application
- darwaza - A dynamic, graphical Gemini Browser in Tcl/Tk
- DRAKON Editor - a free open source tool for authoring DRAKON diagrams
- Fruho VPN Manager
- Tcl for Creo - Scripting, Customization and Automation with Tcl scripts in Creo
- dia2kroki - convert textual descriptions for various diagram tools to image URL's using the https://kroki.io/ webservice.
- ElectricFlow API for Tcl/Tk
- tcled - Pure Tcl Console Text Editor
- Chimera Grid Tools
- ezdit: A cross-platform editor written in Tcl/Tk
- fbackup - Perform incremental backups using a fossil repository as a storage.
- GraphViz - Set of graph drawing tools and libraries, supporting hierarchical and mass-spring drawings
- HelpViewer Application
- hl_tcl - The hl_tcl package is a syntax highlighter for Tcl/Tk code
- hoc-tcl - Port of hoc from "The Unix Programming Environment" book to TCL using taccle/fickle yacc/lex TCL clones
- IPAT-S Software Suite - IPAT-S Software Suite is a collection of supporting tools for the IPAT-S modeling language
- LogCatch - android adb logcat viewer for Linux/Mac/Windows
- MTE - A customizable editor for (X)HTML written in Tcl/Tk
- minitree note taking app
- Notebook - Notebook Personal Wiki
- poApps - Paul's Portable Applications
- rlwrap - a wrapper for GNU readline. It can be used with an interactive Tcl to provide readline editing and command history functionality.
- SAOImage DS9 - a Tcl/Tk program that uses the SAOTk widget set, is an astronomical imaging and data visualization application
- Source Navigator
- SplineEditor - For creating interesting vectorial drawings
- snackamp
- starDOM - a little XML browser
- Sqawk - An SQL Awk with table joins
- tawk - awk but in tcl
- Tide - A code editor made in Tcl/Tk
- tcljupyter - Tcl kernel for Jupyter
- tclmake - tclmake is not meant to be a clone of standard make, but it borrows many features and adds a few useful features of its own.
- tclsh-wrapper - A tiny wrapper for Tcl/Tk's tclsh and wish
- Tcl Task Manager
- tedit - a simple text editor written in Tcl/Tk
- tkchat - an instant messaging application for Tcl Chatroom
- TkMC - MC like file manager with basic functionality
- TkSQLite - GUI frontend to sqlite3
- tkrunner - run command dialog for X in Tcl/Tk
- tol - Tcl One-Liner
- GEB - Displaying and modifying an SQLite DB using Tcl code stored in the DB
- Time Sheets - a personal time entry/reporting tool written in Tcl/Tk
- wiki-reaper - An HTTP robot in Tcl that will fetch page(s) from Tcler's Wiki
- binaryscanr - A Tcl binary scan frontend app
- XilinxTclStore - Xilinx Tcl Store
- Exercism Tcl Track
- Exercism Tcl Test Runner
- Cameron Laird's personal notes on commercial aspects of Tcl
- Andreas' ComputerLab BLOG
- dbohdan blog
- tclcode - Tcl/Tk code by Detlef Groth
- magicsplat.com - Software, articles and blog
- The "Clone Don Porter" Project
- Tcl-bounties - Bounty program for improvements to Tcl and certain Tcl packages
- @TclLang - Twitter feed for news about happenings in the Tcl world
- Monthly Virtual Meetup
- Monatlicher virtueller Tcl Stammtisch - A virtual European Tcl Meetup