Learn Ballerina

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

Get started

Install Ballerina

Set up the Ballerina development environment.

Get started with Ballerina

Write your first Ballerina program and create your first Ballerina package.

Language basics

Get started with the basics that are common to all C-family programming languages.

Write a RESTful API with Ballerina

Understand the basics of Ballerina constructs, which allow you to write RESTful APIs.

Write a GraphQL API with Ballerina

Understand the basics of Ballerina constructs, which allow you to write GraphQL APIs.

Write a gRPC service with Ballerina

Write a simple Ballerina gRPC service and invoke the service through a Ballerina gRPC client.

Work with data in Ballerina

Use Ballerina query expressions to filter, sort, and join different iterable collections.

Deploy Ballerina on Kubernetes

Dockerize your application and deploy it on Kubernetes.

Build a data service in Ballerina

Connect to a MySQL database and execute queries using an HTTP RESTful API.

Guides

Distinctive language features

A guide to the language features that make Ballerina distinctive.

Organize Ballerina code

Basics of projects, packages, and modules.

Test Ballerina code

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

Generate code documentation

The usage of the bal doc CLI command.

Configure Ballerina programs

The language support for configurability.

Observe Ballerina programs

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

Run Ballerina programs in the cloud

The cloud offerings for running Ballerina programs.

Manage dependencies

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

Publish packages to Ballerina Central

Details of publishing your library package to Ballerina Central.

Call Java code from Ballerina

Details of calling Java code from Ballerina using Java interoperability.

Debug Ballerina programs

Details of tooling support for troubleshooting Ballerina applications.

Ballerina Shell

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

Visual Studio Code extension

Details of all the features of the Ballerina Visual Studio Code extension.

Ballerina OpenAPI support

Details of all the features of the Ballerina OpenAPI tools.

References

Ballerina by Example

A series of guided examples to learn the language.

Library documentation

Ballerina library API documentation.

CLI documentation

Details of all the CLI commands of the bal tool.

Platform specifications

Details of the Ballerina language specifications and proposals.

Style guide

Best practices to follow when formatting Ballerina code.

Java interoperability

Instructions on the supported Java interoperability features.

Package references

References related to Ballerina Packages.

Talks

Language walkthrough

A video series, which explains the language and its reference slide deck.

In the creation of Ballerina, we were inspired by many technologies. Thank you to all that have come before us (and forgive us if we missed one): Java, Go, C, C++, D, Rust, Haskell, Kotlin, Dart, TypeScript, JavaScript, Python, Perl, Flow, Swift, Elm, RelaxNG, NPM, Crates, Maven, Gradle, Kubernetes, Docker, Envoy, Markdown, GitHub, and WSO2.

This website uses cookies so that we can provide you with the best user experience. Read our Cookie policy to find out more.

If you wish to disable cookies you can do so from your browser.