About the JARU programming language
What is JARU?
JARU is a general-purpose programming language that focuses on code simplicity and readability. It's an object-oriented language with dynamic types that runs on a fast and compact virtual machine.
It's designed to run on devices with limited resources, such as the ESP32 or the ESP32-P4 and ESP32-S31 (RISC-V). Its virtual machine is specially optimized to occupy little memory space and execute quickly and efficiently, making it particularly suitable for IoT development.
Main features
- Dynamic data types: JARU doesn't require specifying the data type of a variable before assigning a value.
- Clean and direct syntax: Easy to learn and understand.
- Built-in garbage collector: Forget about manually freeing memory.
- High customization: Wide variety of options and tools.
- Productivity: Allows writing code quickly and efficiently.
- Flexibility: Easily adapts to different projects and environments.
The JARU ecosystem
JARU IDE
The environment for writing JARU programs, testing them on the Windows VM without a board, and taking them to an ESP32 board. It includes:
- For writing and testing: the code editor, with autocompletion and errors underlined as you type, and the debugger, with breakpoints and the Watch window.
- For games: the image, sprite, tilemap and scene editors (the scene editor builds rooms without writing code), and the Music Tracker for music.
- For hardware: the GPIO simulator, which tests the pins on Windows without a board, and the I2C drivers, for sensors and other I2C chips.
- Git, for version control without leaving the IDE.
Every tool, with what it does, is in The IDE at a glance.
Board tools
Built into the IDE:
- ESP32 Tools (Config › Platform › ESP32): sets up the board from its board profile (display, sound, SD card, I2C bus and network: WiFi, NTP and MQTT) and writes the VM firmware to it (Flash Firmware).
- Run, with the board selected in Build › Target: compiles the program and uploads it to the board, which starts it.
- Open Serial, in the Output window: the serial monitor, with what the program prints.
Supported platforms
- Development: Windows 10/11 (64-bit)
- Deployment: the Windows VM and the ESP32, ESP32-S3, ESP32-P4 (RISC-V) and ESP32-S31 (RISC-V) boards
Where to go next
- Getting started: install JARU IDE, write your first program and take it to a board; turn on an LED with a button, send a sensor to the network, draw and move something on the display and make your first game with rooms.
- JARU IDE: the IDE manual, starting with The IDE at a glance.
- Boards: the supported boards, their profiles and how to write the VM and your programs to them.
- The language: the introduction to the language and its chapters.
- The API: the modules (display, sound, input, pins, network, files…) and the standard library.
- Release notes: the 0.9.7 notes and those of 0.9.6, and the known issues.
Contact
- Web: https://jarulang.com
- Email: info@jarulang.com
- GitHub: https://github.com/jonotero/jaru-public
Author
Created by Jon Otero Fernández with ❤️
© 2022-2026 JARU Programming Language. All rights reserved.