JetBrains /kotlin

The Kotlin Programming Language.

★ 53,556⑂ 6,458👁 1,489⑃ 9,526● 0▤ 307◈ 0
KotlinCreated 2012-02-13kotlinlang.org
53,556
stars
+2
6,458
forks
1,489
watchers
9,526
prs
0
issues
307
releases
0
discussions

README

Kotlin Programming Language

Welcome to Kotlin!   
Kotlin is a concise multiplatform language developed by JetBrains and contributors.

Some handy links:

  Kotlin Site
  Getting Started Guide
  Try Kotlin
  Kotlin Standard Library
  Issue Tracker
  Kotlin YouTube Channel
  Forum
  Kotlin Blog
  Subscribe to Kotlin YouTube channel
  Follow Kotlin on Twitter
  Public Slack channel
  TeamCity CI build
  Kotlin Foundation

 Kotlin Multiplatform capabilities

Support for multiplatform programming is one of Kotlin’s key benefits. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming.

  Kotlin Multiplatform and Compose Multiplatform for sharing business logic and UI between Android, iOS, desktop, and web.
  Get started with Kotlin Multiplatform
  Kotlin Multiplatform Benefits
  Share code on all platforms
  Share code on similar platforms

 Editing Kotlin

  Kotlin IntelliJ IDEA Plugin (source code)
  Kotlin Eclipse Plugin
  Kotlin Sublime Text Package

 Build environment requirements

This repository is using Gradle toolchains feature
to select and auto-provision required JDKs from Eclipse Adoptium project.

Alternatively, it is still possible to only provide required JDKs via environment variables 
(see gradle.properties for supported variable names). To ensure Gradle uses only JDKs 
from environmental variables - disable Gradle toolchain auto-detection by passing -Porg.gradle.java.installations.auto-detect=false option
(or put it into $GRADLE_USER_HOME/gradle.properties).

On Windows you might need to add long paths setting to the repo:

    git config core.longpaths true 

 Building

The project is built with Gradle. Run Gradle to build the project and to run the tests 
using the following command on Unix/macOS:

    ./gradlew 
    
or the following command on Windows:

    gradlew 

On the first project configuration gradle will download and setup the dependencies on:

 intellij-core is a part of command line compiler and contains only necessary APIs.
 idea-full is a full blown IntelliJ IDEA Community Edition to be used in the plugin module.

These dependencies are quite large, so depending on the quality of your internet connection 
you might face timeouts getting them. In this case, you can increase timeout by specifying the following 
command line parameters on the first run: 
    
    ./gradlew -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000

 Important gradle tasks

- clean - clean build results
- dist - assembles the compiler distribution into dist/kotlinc/ folder
- install - build and install all public artifacts into local maven repository
- coreLibsTest - build and run stdlib, reflect and kotlin-test tests
- gradlePluginTest - build and run gradle plugin tests
- compilerTest - build and run all compiler tests

To reproduce TeamCity build use -Pteamcity=true flag. Local builds don't run proguard and have jar compression disabled by d

Latest release

Kotlin 2.4.21 v2.4.21 2026-10-08
Changelog

 Backend. Wasm

- KT-89267 K/Wasm: calling a (T) - R lambda with an argument that isn't a T traps instead of throwing ClassCastException

 JVM. Reflection

- KT-89280 NoSuchElementException in argumentsMakeSenseOnlyForMutableContainer for Java non-static inner class of generic outer class
- KT-80710 Reflection: change KCallable representation to avoid dependency on K1

 JavaScript

- KT-89449 Kotlin/JS: Member names no longer minified in production
- KT-89363 KJS. Regular class with companion can't extend external class

 Tools. Compiler plugins. Serialization

- K

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON