Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a220844c3dab99fe

Jump to content

Draft:Toit

From Wikipedia, the free encyclopedia


Toit
ParadigmObject-oriented
DevelopersLars Bak, Erik Corry, Anders Johnsen, Florian Loitsch, Kasper Lund
First appeared2021
Stable release
v2.0.0-alpha.191 / April 2, 2026; 3 months ago (2026-04-02)
Typing disciplineOptional
Memory managementGarbage collected
Platformx86-64, ESP32
OSPOSIX, Windows, FreeRTOS
LicenseLGPL
Filename extensions.toit
Websitewww.toitlang.org
Influenced by
Java, Dart,Smalltalk, Python,Shell

Toit

[edit]

Toit is an open-source programming language designed for Internet of Things (IoT) applications, with a focus on ESP32 microcontrollers made by Espressif Systems. It was developed by Toitware ApS, a Danish company founded in 2018, and released as open source in November 2021.[1]

Toit was created by a team that included Lars Bak and Kasper Lund, who had previously developed the V8 JavaScript engine for Google Chrome and co-designed the Dart programming language at Google.

As of 2026, the language targets ESP32-class hardware. Using a garbage-collected runtime on a microcontroller involves memory and latency trade-offs compared to hand-optimised C, a consideration noted in coverage of the language.[2]

History

[edit]

Founding

[edit]

Lars Bak and colleagues founded Toitware ApS in Aarhus, Denmark, in 2017–2018 to build a new programming language for IoT development.[3] In February 2019, the company raised DKK 23 million (approximately US$3.5 million) in seed funding from Swedish venture capital firm Creandum.[4] Early versions required cloud registration to deploy code to devices.[5]

Open sourcing

[edit]

In November 2021, Toitware announced the language would be released as open source under the LGPL licence.[6] At the same time, Espressif Systems — the manufacturer of the ESP32 — published coverage of Toit on its own news platform, noting performance comparisons with MicroPython on ESP32 hardware.[7] CNX Software, an independent embedded-systems publication, also covered the release, reporting Toitware's claim that Toit ran approximately 30 times faster than MicroPython on the ESP32.[8]

The commercial cloud offering was later discontinued. Development of fleet-management tooling continued through an open-source project called Artemis, built on Supabase and PostgreSQL, which users self-host.[9]

According to Denmark's Central Business Register, Toitware ApS ceased operating in 2024.[10] Development of the language continues as a community project on GitHub.

[edit]

The name "Toit" comes from a running gag in the 2002 film Austin Powers in Goldmember, in which the character Johann van der Smut repeatedly says "toit like a tiger" in an exaggerated Dutch accent. The Toit logo is styled after a feline nose, referencing the same phrase.

Design

[edit]

Toit uses an indentation-based syntax similar to Python, in which block structure is indicated by indentation rather than braces or keywords. Semicolons are not required to terminate statements, and function calls do not use parentheses around arguments.

The type system is optional: programs can be written without type annotations and will still run, but adding types enables static analysis and compiler optimisations. Memory is managed by a garbage collector.

The language supports object-oriented programming with classes, interfaces, and mixins, as well as standard library features including strings, lists, maps, and exception handling.

In the context of embedded development, Toit includes built-in support for hardware interfaces including GPIO, I²C, and SPI.[11]

Syntax

[edit]

Hello World

[edit]
main:
  print "Hello, World!"

Functions and calls

[edit]

Functions are declared with a name, parameters, and a colon. Arguments are passed by juxtaposition, without parentheses or commas, similar to Smalltalk and Unix shell syntax.

print-hello name:       // Function 'print-hello' with one parameter.
  print "hello $name"

main:
  print-hello "Austin"  // Call with one argument.

Classes

[edit]
class Foo:
  some-method:
    print "in some-method"

class Bar extends Foo:
  constructor:
    print "in constructor"

  bar-method with params:
    print "in bar-method"

Implementation

[edit]

Virtual machine

[edit]

Toit programs compile to bytecode and run on a purpose-built lightweight virtual machine (VM). The same VM runs on both microcontrollers and desktop systems. On desktop, the VM and bytecode can be bundled into a single self-contained executable.[12]

Containers

[edit]

On the ESP32, the Toit VM can run multiple programs simultaneously. These are called "containers". Each container runs independently, with no shared memory, and containers communicate via a built-in remote procedure call (RPC) mechanism.[13]

Concurrency

[edit]

Within a container, programs use cooperative concurrency through a "tasks" abstraction. Tasks are not preempted arbitrarily; they yield at explicit yield statements or when waiting on hardware or system calls.

Tooling

[edit]

The Toit toolchain is distributed as two command-line tools, both available on GitHub:[14]

  • toit — compiles and runs Toit programs on desktop systems and manages packages.
  • jag (Jaguar) — deploys, updates, and monitors Toit programs on ESP32 hardware over Wi-Fi without reflashing the device.

Reception

[edit]

EE Times described Toit as addressing the complexity of IoT development by offering a high-level language with memory safety for devices that traditionally require C or C++.[15]

EEJournal reviewed the language in 2021, calling it a practical alternative to MicroPython for ESP32 development.[16] Codecentric, a software consultancy, published a technical evaluation 2022 concluding that Toit's performance and live-reload capability made it suitable for production IoT work on ESP32.[17]

References

[edit]
  1. ^ Flaherty, Nick (November 26, 2021). "Toit opens up its IoT programming language". EE News Europe.
  2. ^ Lüdiger, Florian (August 29, 2022). "Toit will bring your IoT projects up to speed". Codecentric AG.
  3. ^ Andersen, Tania (July 3, 2018). "Aarhus experts from Chrome's Javascript engine create IoT language and virtual machine". Version2 (in Danish).
  4. ^ "Toitware secured seed capital in an investment round including Creandum". Nordic9. February 25, 2019.
  5. ^ "Product of the Week: Toit Software Platform". Embedded Computing Design. September 7, 2021.
  6. ^ Flaherty, Nick (November 26, 2021). "Toit opens up its IoT programming language". EE News Europe.
  7. ^ "Toit's Cloud-managed Containers on ESP32". Espressif Systems. 2021.
  8. ^ Aufranc, Jean-Luc (November 28, 2021). "Toit open-source language claims to be 30x faster than MicroPython on ESP32". CNX Software.
  9. ^ "toitware/artemis". GitHub. December 16, 2025.
  10. ^ "CVR 38984594". Denmark's Central Business Register.
  11. ^ Lüdiger, Florian (August 29, 2022). "Toit will bring your IoT projects up to speed". Codecentric AG.
  12. ^ Aufranc, Jean-Luc (November 28, 2021). "Toit open-source language claims to be 30x faster than MicroPython on ESP32". CNX Software.
  13. ^ "Product of the Week: Toit Software Platform". Embedded Computing Design. September 7, 2021.
  14. ^ "Toit language". GitHub.
  15. ^ Jagdale, Saumitra (August 20, 2021). "Resolving the Complexities in IoT Development with the Support of APIs and High-Level Languages". EE Times.
  16. ^ Maxfield, Max (September 23, 2021). "It's Time to Get Toit!". EEJournal.
  17. ^ Lüdiger, Florian (August 29, 2022). "Toit will bring your IoT projects up to speed". Codecentric AG.