Ballerina is a comprehensive language that is easy to grasp for anyone with prior programming experience. Let's start learning Ballerina.

Learn the language

Learn the platform

Source code & dependencies

Organize Ballerina code

Basics of projects, packages, and modules.

Package references

References related to Ballerina Packages.

Manage dependencies

Details of declaring and managing dependencies and using the local repository.

Style guide

Best practices to follow when formatting Ballerina code.

Test, debug & document the code

Test Ballerina code

Details of writing automated tests using the built-in test framework.

Debug Ballerina Programs

Details of tooling support for troubleshooting Ballerina applications.

Document Ballerina code

Generate documentation for the code.

Run in the cloud

Code to cloud

Generating cloud deployment artifacts.

Functions as a service

AWS Lambda and Azure functions.

Ballerina Tooling

Visual Studio Code extension

Details of the Ballerina Visual Studio Code extension.

Ballerina Shell

Details of the Read-Evaluate-Print Loop (REPL) for Ballerina.

OpenAPI tool

Details of the Ballerina OpenAPI tool.

GraphQL client tool

Details of the Ballerina GraphQL client tool.

AsyncAPI tool

Details of the Ballerina AsyncAPI tool.

Strand dump tool

Details of the Ballerina strand dump tool.

CLI documentation

Details of the CLI commands of the bal tool.

Configure & observe

Configure Ballerina programs

The language support for configurability.

Observe Ballerina programs

Basics of the observability functionalities that are provided for Ballerina programs.

Ballerina Central

Publish packages to Ballerina Central

Details of publishing your library package to Ballerina Central.

Java interoperability

Call Java code from Ballerina

Calling Java code from Ballerina.

Java interoperability guide

Instructions on the supoorted Java interoperability.

Native Support

[Experimental] Build a native executable

Building a GraalVM native executable from Ballerina.