Context. Measuring how the physical properties of galaxies change across cosmic times is essential to understand galaxy formation and evolution. With the advent of numerous ground-based and space-borne instruments launched over the past few decades we now have exquisite multi-wavelength observations of galaxies from the FUV to the radio domain. To tap into this mine of data and obtain new insight into the formation and evolution of galaxies, it is essential that we are able to extract information from their SED. Aims. We present a completely new implementation of CIGALE. Written in python, its main aims are to easily and efficiently model the FUV to radio spectrum of galaxies and estimate their physical properties such as star formation rate, attenuation, dust luminosity, stellar mass, and many other physical quantities. Methods. To compute the spectral models, CIGALE builds composite stellar populations from simple stellar populations combined with highly flexible star formation histories, calculates the emission from gas ionised by massive stars, and attenuates both the stars and the ionised gas with a highly flexible attenuation curve. Based on an energy balance principle, the absorbed energy is then re-emitted by the dust in the mid- and far-infrared domains while thermal and non-thermal components are also included, extending the spectrum far into the radio range. A large grid of models is then fitted to the data and the physical properties are estimated through the analysis of the likelihood distribution. Results. CIGALE is a versatile and easy-to-use tool that makes full use of the architecture of multi-core computers, building grids of millions of models and analysing samples of thousands of galaxies, both at high speed. Beyond fitting the SEDs of galaxies and parameter estimations, it can also be used as a model-generation tool or serve as a library to build new applications.