GUAVA is a package that implements coding theory algorithms in GAP. Codes can be created and manipulated and information about codes can be calculated.

GUAVA consists of various files written in the GAP language, and an external program from J. S. Leon for dealing with automorphism groups of codes and isomorphism testing functions. Several algorithms that need the speed are integrated in the GAP kernel.

The functions within GUAVA can be divided into four categories: - Construction of codes. GUAVA can construct non-linear, linear and cyclic codes over an arbitrary finite field. Examples are HadamardCode, ReedMullerCode, BestKnownLinearCode, QRCode and GoppaCode. - Manipulation of codes. These functions allow the user to transform one code into another or to construct a new code from two codes. Examples are PuncturedCode, DualCode, DirectProductCode and UUVCode. - Computation of information about codes. This information is stored in the code record. Examples are MinimumDistance, OuterDistribution, IsSelfDualCode and AutomorphismGroup. - Generation of bounds on linear codes. The table by Brouwer and Verhoeff (as it existed in the mid-1990s) is incorporated into GUAVA. For example, BoundsMinimumDistance.