Development Environment Setup
This guide introduces the Atym development environment, dev containers, and the tools for building containerized applications with C/C++. Additionally, we'll point you to a guide on setting up a custom development environment if you choose to do so.
Understanding Dev Containers
To begin your development journey with Atym, it's essential to set up a reliable and consistent environment. Dev containers provide all the necessary tools and dependencies pre-configured, allowing you to focus on development without worrying about setup issues.
What They Are and Why do We Use Them?
Dev containers are consistent, pre-configured development environments that run inside docker containers. They provide all the tools, libraries, and dependencies needed for Atym development without requiring you to install them directly on your machine. We use dev containers because they ensure consistent development environments across all team members, significantly simplify onboarding with pre-configured tools, isolate project dependencies from your local system, and enable reproducible builds regardless of the host operating system.
What’s in the Atym Dev Container?
The dev container is designed to provide all the tools and dependencies needed for development. It ensures that you can get started with minimal setup. Here’s an overview of the components included:
- Base Image: An Ubuntu 24.04 LTS image provides a stable and modern foundation for development.
- Atym CLI: Command-line tool for managing devices, packages, and containers within the Atym ecosystem.
- WASI SDK: The WebAssembly System Interface SDK is what Atym uses under the hood to compile your C/C++ applications into WebAssembly modules that run in a WASI-compliant runtime. This is the core toolchain that enables your code to run as Atym containers.
- iwasm: iwasm (Wasm Micro Runtime) is an interactive WebAssembly runtime that allows you to load and execute Atym containers locally on your build machine, making it invaluable for rapid testing and debugging of your WASM modules before deploying to actual devices.
WABT: The WebAssembly Binary Toolkit (WABT) provides a suite of command-line tools for working with WebAssembly binaries. Tools likewasm2wat,wat2wasm, andwasm-objdumphelp you inspect, debug, and convert between binary and text formats, making it easier to analyze and troubleshoot your WebAssembly modules during development.- Build Tools and Various Dependencies: Includes essential tools like ccache, ninja-build, make, cmake, git, and python3-pip for building, managing, and automating your development workflow.
All of these utilities and toolchains are installed within the dev container, typically under the /opt directory, and are available in the system's PATH for easy access from any terminal session.
Using the Dev container
Please visit the "Development Environment Setup" section in the Build and Deploy guide to set up your development environment using our pre-defined dev container.
Building Your Own Development Environment
While the provided dev container simplifies the setup process, you may choose to build a custom development environment. This can be particularly useful if you have specific tool requirements or wish to integrate Atym into an existing workflow.
For detailed instructions on how to configure your own development setup, please refer to the Building a Custom Development Environment guide found in the references section of the sidebar.