SummaryThe conventional Fourier transform was originally developed in order to solve the heat equation, which is a standard example for a linear evolution equation. Nonlinear Fourier transforms (NFTs) 1 are generalizations of the conventional Fourier transform that can be used to solve certain nonlinear evolution equations in a similar way (Ablowitz et al. 1974). An important difference to the conventional Fourier transform is that NFTs are equationspecific. The Korteweg-de Vries (KdV) equation (Gardner et al. 1967) and the nonlinear Schroedinger equation (NSE) (Shabat and Zakharov 1972) are two popular examples for nonlinear evolution equations that can be solved using appropriate NFTs.NFTs are well-established theoretical tools in physics and mathematics, but in several areas of engineering they have only recently begun to draw significant attention. An idealized fiber-optic communication channel can be described by the NSE, which is solvable with a NFT. In the last few years, there has been much interest in using NFTs for data transmission in optical fibers. We refer to Turitsyn et al. (2017) for a recent review. Several invited papers and tutorials on the topic have been presented at major conferences such as the Optical Fiber Communication Conference and Exhibition (OFC) and the European Conference and Exhibition on Optical Communication (ECOC) in the last few years. Several new research projects, such as the MSCA-ITN COIN or the ERC Starting Grant from which this project is funded (see below), have been initiated. Another area in which NFTs have found practical application is the analysis of waves in shallow water (Osborne 2010;Brühl and Oumeraci 2016). Here, the KdV-NFT is typically used.The implementation of a numerical algorithm for computing a NFT is however not as simple as for the conventional Fourier transform. While quite a few algorithms have been presented in the literature, there is not a single publically available software library that implements numerical NFTs. We believe that the lack of a reliable and efficient software library for computing NFTs is currently hindering progress in the field. For this reason, we have published FNFT on GitHub. FNFT, which is short for "Fast Nonlinear Fourier Transforms", is a software library that provides implementations of the fast NFT algorithms that were developed by some of the authors Poor 2013, 2015;Prins and Wahls 2018). Our goal was to develop an efficient, easy to use and reliable library. Therefore, FNFT was written in C and ships with a MATLAB interface as well as currently more than 60 unit and integration tests. To simplify the build process as much as possible, FNFT uses CMake. FNFT has no external dependencies, but ships with some 3rd party code from the open source projects EISCOR (also see (J. L. Aurentz and Watkins 2017)) and KissFFT.