Joule Documentation

Welcome to the Joule programming language documentation (v1.1.7). Joule is developed by Open Interface Engineering, Inc.

For New Users

  • Getting Started -- Install the compiler and write your first Joule program
  • Language Tour -- Learn Joule's syntax and features through examples

Guides

Language Reference

The formal specification of Joule's syntax and semantics.

  • Types -- Primitives, compounds, generics, union types, type inference
  • Expressions -- Operators, pipe operator, literals, control flow, closures
  • Items -- Functions, structs, enums, traits, impls, modules, const fn, comptime
  • Patterns -- Pattern matching: or patterns, range patterns, guard clauses
  • Attributes -- Energy budgets, #[test], #[bench], thermal awareness
  • Memory -- Ownership, borrowing, references, lifetimes
  • Concurrency -- Async/await, spawn, channels, task groups, parallel for
  • Energy -- Energy system specification with accelerator support

Standard Library Reference

Joule ships with 110+ batteries-included modules.

  • Overview -- Index of all standard library modules
  • String -- String type and operations
  • Vec -- Dynamic arrays
  • Option -- Optional values
  • Result -- Error handling
  • HashMap -- Key-value maps
  • Primitives -- Numeric types, bool, char
  • Collections -- All collection types
  • I/O -- File and stream I/O
  • Math -- Mathematical functions and linear algebra

Feedback

To report bugs, request features, or ask questions, visit joule-lang.org or open an issue on GitHub.