Skip to main content

Advanced Project Configuration

This page provides a comprehensive breakdown of the build.yaml file — the manifest that defines how your application is built by Atym. It covers required and optional fields, usage patterns, and how to make the most of Atym's flexible build system. If you're looking to customize environment variables, permissions, or multi-binary layouts, this guide is for you.


Understanding the Structure

At a high level, build.yaml is composed of three main sections:

  • version: The schema version for the file
  • name: A short identifier used to name your resulting container
  • binaries: A list of WebAssembly modules (.wasm files) to include
  • config (optional): Runtime-level configuration like environment variables and permissions

Sample:

version: '1'
name: your-project
binaries:
- path: build/your-project.wasm
config:
permissions:
- ocre_messaging
- networking
entrypoint: main
heapSize: 12345
stackSize: 12345

Required Fields

ParameterDescriptionAccepted Values
versionSchema version for the build fileCurrently must be '1'
nameThe name of your container. Must follow OCI container naming conventionsString following OCI naming conventions
binariesList of WebAssembly modules to includeArray of binary objects
binaries[].pathPath to WebAssembly binaryRelative path to .wasm file

Optional Fields (config:)

ParameterDescriptionAccepted Values
permissionsRuntime capabilities granted to containerSee Permissions Reference
entrypointEntry function name for the containerString (function name)
heapSizeMemory allocated for dynamic memory allocationInteger (bytes)
stackSizeMemory allocated for function call stackInteger (bytes)