Code

Code and environments

Supported languages, per-lecture packages, and where each language's code actually runs.

A lecture's file tree can hold source files in Python, JavaScript, TypeScript, SQL, R, C, C++, and (once the cloud sandbox is enabled) other compiled languages. Each runs in whichever place is cheapest and safest for it:

  • Python runs in your browser (Pyodide). Slower to start the first time, free to run.
  • JavaScript, TypeScript, SQL, and R run inside an isolated sandbox in your browser — a separate, locked-down frame with no access to your Dex Notes login or data, so untrusted code can't reach your account even if it tried.
  • C and C++ compile locally where available.
  • Other compiled languages (Java, Go, Rust, C#, Kotlin, Racket, Haskell, OCaml) run in a cloud sandbox, a short-lived, isolated container — available once your plan supports it.

Every run is capped at 10 seconds; a program that hangs is stopped automatically.

Packages and environment files

Click Environment in the file tree to see and edit each language's package manifest:

  • Python: requirements.txt — packages install before your code runs, and a requirements.lock file records the exact versions that were resolved.
  • JavaScript/TypeScript: package.json — dependencies load from a public CDN by exact pinned version.
  • SQL: schema.sql runs once before your query file, so you can set up tables to query against.
  • R: packages.R — only packages with a WebAssembly build available in the browser can install there; anything else needs the cloud sandbox.

A package that can't install in the browser shows a clear message saying so, rather than failing silently.