Mailing Lists
Flux Projects



  • 24 November, 2003 Knit 1.2.0 released
  • 14 February, 2001 Knit 1.0.0 released

What is Knit?

Welcome to Knit, the C Component Extension, from the Flux Research Group at the University of Utah's School of Computing.

Knit is the first component definition and linking toolset from the Alchemy project. Knit helps to make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of componentization, detects subtle errors in component composition that cannot be caught with normal component type systems, and provides a foundation for developing future analyses over C-based components, such as cross-component optimization.

Knit is especially designed for use with component kits, where standard linking tools provide inadequate support for component configuration. In particular, we initially developed Knit for use with The OSKit, a large collection of components for building low-level systems. However, Knit is not OSKit-specific.

Knit is part of an ongoing R&D effort. We seek feedback, external users, and collaborators whose experiences and insight will help evolve Knit.

To join the knit-users or knit-announce mailing lists, send email to majordomo@flux.cs.utah.edu with, e.g, "subscribe knit-users" in the body.



Feel free to peruse the Knit 1.0.0 release announcement, license, installation instructions, user's manual and tutorial (DVI, PDF, PS, gzip'ed PS) and language definition (DVI, PDF, PS, gzip'ed PS). All of these documents are included with the Knit distributions.


Toy Examples:
The Knit distribution includes three example programs to introduce you to Knit. The example programs are described in the Knit User's Manual and Tutorial.

Here at Utah, The OSKit is using Knit to experiment with component composition for systems software. The OSKit is a set of low level components for building operating systems and embedded systems. Knit 1.0.0 can be used with the Valentine's Day Snapshot (20010214) of the OSKit, which defines many Units.

Clack is a partial implementation of a Click-like modular router, using units. It is described in our OSDI 2000 paper and requires Knit 1.0.0 and the matching OSKit snapshot.

Here at Utah, the Janos project is constructing an OS customized for running Java byte code, targeted at active networks.


Knit is released under an ``open source'' BSD-style license.

Download the distribution of your choice:

To build from source, you will need to install GHC 6.0 (a Haskell compiler) which is available for many platforms from http://haskell.org/ghc,

Older releases are also available:


Knit is released under a BSD-style license. This means that you can basically do anything you want with the program.

Bug Reports/Feedback

Please send bug reports and feedback to knit-users@flux.cs.utah.edu. This mailing list is open to subscribers only; see the description of the Alchemy mailing lists for more information.

[ CMI ] [ CPU Broker ] [ Hourglass ] [ Jiazzi ] [ Knit ] [ Maya ] [ SPAK ]
[ Network Testbed ] [ Alchemy ] [ Self-Spreading Transport Protocols ]
Flux Research Group / School of Computing / University of Utah

Problems? Contact the Flux Web Admin.
Last updated January 09, 2005.