Namespaces
On this page
Once you start to develop a number of Viash components, you may want to group them together for improved maintenance and a separation of concerns. In addition, multiple developers could work on different sets of components in parallel and later bring them together in a larger project.
We call a group of components a namespace.
Building a namespace
You can assign a component to a namespace by defining its namespace attribute in the viash config file:
functionality:
name: some_component
namespace: my_namespace
Alternatively, the namespace can be automatically inferred by structuring the components hierarchically. In the example below, there are two namespaces: file_processing and network_tools. Each of these namespaces has one or more components assigned to them:
src
├── file_processing
│ ├── parse_images
│ │ ├── config.vsh.yaml
│ │ └── script.sh
│ └── render_mp4
│ ├── config.vsh.yaml
│ └── script.sh
└── network_tools
└── download_files
├── config.vsh.yaml
├── output
│ └── download_files
└── script.sh
To build a namespace to a set of executables, use the viash ns build command.