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

Learn the language

Explore more on the above topics via the concise video and slide resources.   Watch videos   |   View slides

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, and 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.

Configure and observe

Configure Ballerina programs

The language support for configurability.

Observe Ballerina programs

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

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.

Ballerina Central

Publish packages to Ballerina Central

Details of publishing your library package to Ballerina Central.

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 tool

Details of the Ballerina GraphQL 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.