Core Technologies and Attributions
Dependencies and Attributions
Section titled “Dependencies and Attributions”The following software projects are the core dependencies used by the XFELPP packages. For specific information on where and how they are used, refer to each package’s individual documentation.
- AsmJit - A fantastic project for machine code generation. This underpins the host compiler implementation in
ncarray. - cpp-httplib - For setting up HTTP clients.
- Brotli - A lossless compression algorithm used by cpp-httplib.
- CUDA Toolkit - GPU support.
- GoogleTest - For test generation.
- HDF5 - HDF5 file support.
- Meson - The primary build system.
- Ninja - Underlying Meson.
- Various MPI Implementations for Parallelization:
- hwloc - Used for resource determination independently of MPI suqpport.
- pybind11 - Building Python bindings.
- RapidJSON - JSON parsing (particularly when interfacing with web APIs).
- SPDLog - Various logging utilities.
Inspirations
Section titled “Inspirations”While not used directly, a number of projects have also served as major inspirations for various pieces and components of the XFELPP stack.
Additional Tooling
Section titled “Additional Tooling”The XFELPP packages could not be distributed without the availability of:
- cibuildwheel - The
cibuildwheelwheel infrastructure makes it possible to create all the wheel variants. - GitHub Actions - For running CI builds on all platforms (particularly Windows and macOS support).
Documentation and Website Building and Hosting
Section titled “Documentation and Website Building and Hosting”This website was constructed using:
It is hosted using various Cloudflare technologies.
Documentation is built using:
Some small node.js scripts tie it all together at the end.