TSK Developer's Guide
This page contains technical information on developing code for TSK. If you are looking for a guide that helps to incorporate the TSK library into your tools, then refer to the TSK Library User's Guide.
This page is a work in progress and more information will be posted. Here are some starting points.
- The Developer Guidelines define how code and patches can be submitted and incorporated into the distribution.
- The sleuthkit-developers list exists to discuss the development of the tools. Subscribe to ask and answer questions.
- If you want to contribute documentation, then refer to the Support page.
What To Do?
If you are looking for ideas on how you can contribute, then you may want to refer to the feature request and bug trackers. They contain ideas that people have for the tools or bugs that need to be fixed.
The source code is stored in a Subversion repository. You can get the latest source tree by doing a checkout from http://svn.sleuthkit.org/repos/sleuthkit/. The latest code is in the trunk directory. The branches directory contains branches for minor release versions so that bugs can be fixed there for bug releases. The tags directory contains tags for each release. Note that this repository was created right before the 3.0.0 release and does not contain the previous CVS history.
More details in this section will be defined...
Here are the standards that I have been trying to maintain in TSK for the past few years.
- Spaces instead of tabs
- The C code uses GNU indent to handle the formatting (just do a 'make indent' in the directory).
- I have no good indenting solution for C++ code (GNU indent makes UGLY C++ code)
- C++ fields start with "m_"
- Arguments to C/C++ functions/methods start with "a_".
- C names use underscores
- C structs are all upper case
- C variable names start with lower case
- C++ names use camel case
- C++ Classes start with a capital letter
- C++ objects start with a lower case letter
Not all of TSK is up to date on these standards as I have been updating them as I fix bugs and such.