Reference
Supported languages
JDoodle runs 114 languages, frameworks and databases in the IDE.
This page is about what each language can do. For the exact language and
versionIndex values the API expects, see
languages and versions.
Languages with multi-file projects
41 languages have an Advanced variant. That is the multi-file one: several source files, your own folder structure, and a build step.
Java, HTML/CSS/Javascript, C, C++, C++ 14, C++ 17, C99, C#, PHP, Perl, Ruby, Python2, Python3, Scala, VB.NET, Haskell, Go, Swift, Groovy, Fortran, Lua, R, Ada, D, Dart, FreeBASIC, Verilog, NodeJS, Bash, COBOL, Assembler (NASM), OCaml, Elixir, Nim, Kotlin, Deno, Crystal, TypeScript, C++ 20, C++ 23, Bun
Everything else is single file. See multi-file projects.
Languages that take libraries
23 languages let you add third party libraries from the Libraries panel in the IDE. Name the package and it is installed before your code runs.
| Language | Where the package comes from |
|---|---|
| Java | Maven |
| C | Arch Linux |
| C99 | Arch Linux |
| C++ | Arch Linux |
| C++ 14 | Arch Linux |
| C++ 17 | Arch Linux |
| PHP | Packagist |
| Perl | CPAN |
| Python 2 | pip |
| Python | pip |
| Ruby | RubyGems |
| Scala | Maven |
| Bash Shell | Arch Linux |
| C# | NuGet |
| VB.NET | NuGet |
| Swift | You edit the project file yourself |
| Groovy | Maven |
| Lua | LuaRocks |
| R Language | CRAN |
| Dart | Pub Dev |
| NodeJS | npm |
| Kotlin | Maven |
| TypeScript | npm |
Full stack and database IDEs
These are project templates rather than single languages. Each one runs a server, a database, or both.
- Frontend. React, Vue
- Backend. Express, Spring Boot, Flask, Laravel
- Database. PostgreSQL, MySQL, MongoDB
What assessments accept
Assessments take single file languages only.
The multi-file Advanced variants, the full stack templates, the databases, HTML/CSS/Javascript and Blockly cannot be set as an assessment question. If you need a student to write across several files, set it as a project instead.
See question types.
What next
- Languages and versions, for the API values.
- Limits, for what your plan allows.