The Toit programming language
Small scripts.
Independent applications.
Toit is a language for writing scripts on your computer and applications on your ESP32. A readable syntax, an efficient runtime, and tools that work together.
Free and open source. Maintained by volunteers.
On your computer
Write scripts, process data, and automate everyday tasks. Build command-line applications with Toit’s CLI package.
Start scripting EmbeddedOn an ESP32
Work with sensors and peripherals. Run applications in separate containers and update them independently.
Explore embedded developmentThe language
A short example
Select Toit source filenames from a list and print them in alphabetical order. Short blocks
describe what to keep and what to do with each result; it refers to the current element.
Toit has classes, exceptions, and built-in types. You can start with a short script and add structure as it grows.
Read the language guide →main:
files := ["test.toit", "README.md", "main.toit"]
sources := files.filter: it.ends-with ".toit"
sources.sort.do: print it
$ toit run sources.toit
main.toit test.toit
Beyond a single program
A runtime for independent applications.
On an embedded device, your application is one part of a running system. Toit containers let you install, stop, and update applications separately.
Keep a sensor application running while you replace another application. Build services that other containers can use.
See how containers fit together →An open-source project
Use it. Read it. Help shape it.
Toit is developed in the open. Contributions include programs and packages, documentation, bug reports, and changes to the language and runtime.
Meet the project →Latest language release
Toit v2.0.0
- Lots of bug fixes.
- Add support for Unix domain sockets (which will be accessible through the host package)
- Allow the hostname to be set via firmware config
Full Changelog: https://github.com/toitlang/toit/compare/v2.0.0-alpha.199...v2.0.0