Skip to content

ray2501/Tcl-Related-Link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tcl-Related-Link

這是一個我個人收集的 Tcl 相關連結網頁。目的是我需要某個連結的時候,可以很快的找到。

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.

官網與相關文件

Contents

Books

And check Book.

Tcl Distributions

Source

Binary for Windows

TclKits

Editor and IDE

Useful info:

And TDK (Tcl Dev Kit) is open sourced by ActiveState, check

Version control

  • 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.

Issue tracking

Compiler

Debugger

  • 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

Code Analysis

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.

Build System

  • 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

Package system

  • 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

Wrap tool

  • freeWrap: FreeWrap distributions are freely available for Linux and Windows operating systems.
  • tclexecomp
  • Thatch - Create standalone Tcl/Tk apps

Tests

  • tcltest - a package distributed with Tcl, provides a framework for writing and executing program tests.

Standard Libraries

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.

Collection and Tool box

  • 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

Object-oriented

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.

Useful info:

Functional Programming

  • 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

Interactive Tcl

  • 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

CUI

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

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:

GUI toolkit

  • Gnocl: Tcl binding to GTK
  • TclFltk: a Tcl binding for the Fast Light Tool Kit portable GUI development environment

Graphics and Images

  • 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:

For barcode:

  • tzint - tcl package for libzint barcode encoding library (no Tk needed)

And my project:

Audio and Sound

  • 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:

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

Video

Useful info:

And my project:

  • tkvlc - A demo to embed libVLC to Tk toolkit widget

Channel and file system

  • 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)

Command line

  • 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:

tclsh supports here document. For example:

tclsh - << "EOF"
puts [expr 99 + 1]
EOF

Compression

And my project:

Concurrency

And useful info:

Distributed computation

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.

Parallel computing

And my project:

Cryptography

  • 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.

Database

Tcl Database Connectivity (TDBC), part of Tcl 8.6, is a common database access interface for Tcl scripts.

and check:

Data type

  • 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:

Data struct

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

Diff

  • 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

Documentation Tools

  • 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.

File format

Configuration

  • conf.tcl - A tcl package for loading a textual configuration(from file, string, etc) into dict

CSV and TSV

  • 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

CommonMark and Markdown

And you can check Markdown2Go.

JSON

TOML

Useful info:

HDF

  • HDFpp - Interface for Tcl (and optionally Python) to read HDF4 and HDF5 files

And you also can check BessyHDFViewer.

Office File

  • ooxml - Read and Write Office Open XML "XLSX" since Excel 2007

PDF

SenML

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

XML

And my project:

  • tclxqilla - Tcl extension for XQilla library

YAML

Fileutils

  • 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

Geography

  • 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:

Internationalization and localization

  • 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().

Networking

  • 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

Numeric processing

  • 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:

Parser Engine

  • Marpa/Tcl - Marpa is a Tcl binding to libmarpa
  • Yeti - parser and scanner generator for Tcl

Procedure Tools

  • 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

System

Syslog

  • syslog-alert - throttle email notifications from syslog-ng to multiple distribution groups

Monitoring

Text and string

  • 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:

And my project:

  • regex_rez - Tcl bindings for RE2, implement basic function - fullmatch, partialmatch, replace and globalrelpace
  • tcl-opencc - Tcl bindings for OpenCC (libopencc)

Time

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

Web and Http

  • 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.

CSS

  • tclsass - Tcl interface to the libsass library

JSMIN

Webview

  • 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.

Computing Platform

  • 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++.

Container

Containers are a method of operating system virtualization that allow you to run an application and its dependencies in resource-isolated processes.

Study:

Docker

And useful info:

Platform

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:

Apple Macintosh

Unix-specific

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:

Windows-specific

Android

  • 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.

Emscripten

  • 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.

Browser

  • 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

Language

Assembly

CSharp and dotNET

  • 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

Java

  • 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

Ada

  • 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

C

  • 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:

CPP

D

Erlang

  • 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.

Forth

  • TclForth - A multi-platform desktop Forth system based on Tcl/Tk

Fortran

JavaScript

Go

Pascal

Python

R

R has bindings to Tcl/Tk (part of R, document).

Rust

  • rust-tcl - Currently targets Tcl 8.5
  • molt - Embeddable TCL Interpreter for Rust applications

Swift

Hardware

  • 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.

Arduino

  • tfirmata - a Tcl implementation of Arduino Firmata 2.3

Useful info:

Raspberry Pi

  • piio - supports both gpio and i2c
  • tclSenseHat - A library of tcl procedures for interacting with the Raspberry Pi SenseHat

Useful info:

Nano

  • tcl-nano - A binary Tcl extension for working with the cryptocurrency Nano

Related Project

  • 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

Write a Tcl extension

目前就我所知,Tcl extension 可以大致上分為二種形式, 一種是使用 C/C++ 與 TEA 架構撰寫的 extension。 可以從 Tcl 社群提供的 Sample extension 開始。

# Replace sample with the name of your extension
wget -qO- http://core.tcl.tk/sampleextension/tarball/sample.tar.gz | tar xzv
cd sample
wget -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 資訊並且減少存取檔案系統次數的套件機制。

Tools

Misc

About

Tcl Related Link

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages