[ Home | Main Table Of Contents | Table Of Contents | Keyword Index ]
NAME
ankh_devguide - Ankh - The Developer's Guide
Table Of Contents
SYNOPSIS
package require Tcl 8.6 9
package require ankh ?1.0?
DESCRIPTION
Welcome to Ankh, Andreas Kupries' Hashes.
This document is a guide for developers working on Ankh, i.e. maintainers fixing bugs, extending the package's functionality, etc.
Please read
first, if that was not done already. Here we assume that the sources are already available in a directory of your choice, and that you not only know how to build and install them, but also have all the necessary requisites to actually do so. The guide to the sources in particular also explains which source code management system is used, where to find it, how to set it up, etc.
Developing for Ankh
Directory structure
Helpers
Documentation
"doc/"
This directory contains the documentation sources. The texts are written in doctools format.
"embedded/"
This directory contains the documentation converted to regular manpages (nroff), Markdown, and HTML. It is called embedded because these files, while derived, are part of the fossil repository, i.e. embedded into it. This enables fossil to access and display these files when serving the repositories' web interface. The "Command Reference" link at https://core.tcl-lang.org/akupries/ankh is, for example, accessing the generated Markdown.
Package Code, General structure
"ankh.tcl"
This is the master file of the package. Based on critcl (v3.1) it contain alls the necessary declarations to build the package.
"policy.tcl"
This is the companions to the "ankh.tcl" file which implements the higher-level interfaces on top of the C-based primitive operations, and determines policies.
The documentation (see "doc/") mainly describes the higher-level API, plus the few primitives which are passed through unchanged, i.e. without getting wrapped into Tcl procedures.
"glue.tcl"
Hash command implementations. Consumes the "hashes.tcl" utility file.
"hashes.tcl"
Utility file containing hash declarations. These are consumed by "glue.tcl" to control and guide the implementations.
"c/sha1/"
A copy of the SHA-1 C implementation used by Tcllib. Built as part of Ankh.
"c/rhash/"
A copy of the RHash sources, as of commit 314423fb7a (Feb 13, 2021). These sources are maintained by Aleksey Kravchenko, and distributed under a zero-clause BSD license. Built as part of Ankh.
Package Code, Per Package
-
- "ankh.tcl"
- "glue.tcl"
- "hashes.tcl"
- "policy.tcl"
C support
- "c/"
-
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such at the Ankh Tracker. Please also report any ideas for enhancements you may have for either package and/or documentation.
KEYWORDS
aich, bittorrent info hash, blake, btih, cryptographically secure hashes, ed2k, edonr, gost12, gost94, has160, hash digests, md4, md5, ripemd160, secure hashes, sha1, sha2, sha3, snefru, tiger, tth, whirlpool
CATEGORY
cryptographically secure hashes
COPYRIGHT
Copyright © 2021-2024 Andreas Kupries
Copyright © 2021-2024 Documentation, Andreas Kupries