# External Software
# Singularity
Singularity (opens new window) is a lightweight container that provides an operating-system level virtualization. It is popular in the world of scientific high-performance computing (HPC). Wire-Cell use singularity to provide a virtual scientific linux (opens new window) environment to consistently build the package. During code development, it's important to be always clear if you are working inside your native OS or inside the singularity container.
# Useful links
# Jsonnet
Jsonnet (opens new window) is a data templating language, pronounced "jay sonnet", not "json net". It is perhaps popularized by the Kubernetes community. Wire-Cell used jsonnet extensively for configurations.
# Useful links
# Eigen
Eigen (opens new window) is a C++ template library for linear algebra. In Wire-Cell, linear algebra is used everywhere and Eigen is the underling library to provide both data structures and efficient algorithmic operations.