The sorted pulse data (SPD) software library (SPDLib) is the implementation of the SPD file format (more information about the SPD file format can be found in the proceeding of SilviLaser 2011) along with a collection of tools for processing this data, including for both discrete return and full waveform laser scanning/LiDAR technologies. SPDLib is one of the most complete set of freely available LiDAR processing libraries currently available, particularly for full waveform LiDAR, and including tools for reading and converting LiDAR datasets, decomposing points from waveform data, classifying ground returns, interpolating raster height and elevation products and calculating metrics (mainly for vegetation). Additionally, the SPD format sorts the data in a highly structured manor with a spatial (grid based) index and using pulses rather than points are the main data type. Using pulses has a number of advantages, not least that full waveform data can be stored and processed, but also the data is stored using the same model as the data is acquired. Finally, the SPD format is implemented using a HDF5 file was it can be read by a wide variety of software and is platform independent.