This version of HotDrink is not under active development. A completely rewritten and redesigned implementation based on our newest research findings can be found here.
An experimental (and partial) Rust/WebAssembly-based implementation is also available hotdrink-rs repo.
HotDrink is a JavaScript library for User Interface programming. Instead of requiring programmers to write explicit event handlers, HotDrink derives user interface behavior from a declarative specification of data dependencies.
For a brief overview on the functionality HotDrink provides, see the HotDrink overview.
For a thorough introduction on how to use HotDrink, see How to use HotDrink.
You can find compiled versions of HotDrink on GitHub under releases.
Building is performed with the make
tool. Run make
with no arguments to
get a list of possible make targets. They are:
hotdrink
- Compile the HotDrink library; this is probably the target you wanthotdrink.min
- Compiled minified version of HotDrink library; same library, smaller filefn-worker
- Include file for HotDrink's web worker framework; only needed
if you want to write web workers using HotDrink's frameworkcompile-dfa
- A DFA compiler for models; this tool can make a more efficient
constraint solver for certain types of constraint systems; it's unlikely
that you'll need thisqunit
- QUnit tests; for testing purposes onlyhowto
- Export how-to documentation; note, however, that you can find this
on GitHuball
- all of the aboveclean
- remove all created filesBuild results may be found in the scripts
directory, with the exception of
the how-to, which is found in docs/howto/publish
.
The following tools are required for building.
This repository is organized as follows.
docs
- Documentation
docs/howto
- The HotDrink how-to: in-depth instructions on
using HotDrinksrc
- Source code
src/apps
- Stand-alone applicationssrc/hd
- HotDrink source codesrc/qunit
- QUnit testssrc/workers
- HTML5 web workerstest
- Files for testing
test/cases
- Stand-alone web pages using HotDrinktest/models
- JavaScript defining various models using HotDrink; no web
pagestest/qunit
- Harness for running QUnit teststest/vis
- Visualizer for viewing modelsIn addition, building HotDrink will create the following directories.
modules
- Compiled versions of each TypeScript modulescripts
- Build resultstmp
- Temporary compilation resultsThese directories are deleted by make clean
.