Kotlin/Native

Kotlin/Native - это технология компиляции Kotlin-кода в нативные двоичные файлы, которые могут запускаться без виртуальной машины. Kotlin/Native включает в себя бэкенд компилятора Kotlin на основе LLVM и нативную реализацию стандартной библиотеки Kotlin.

Почему Kotlin/Native?

Kotlin/Native в первую очередь предназначен для компиляции под платформы, на которых виртуальные машины нежелательны или невозможны, например для встраиваемых устройств или iOS. Он хорошо подходит для ситуаций, когда нужно создать самодостаточную программу, не требующую дополнительной среды выполнения или виртуальной машины.

Скомпилированный Kotlin-код легко включать в существующие проекты на C, C++, Swift, Objective-C и других языках. Также из Kotlin/Native можно напрямую использовать существующий нативный код, статические или динамические библиотеки C, Swift/Objective-C-фреймворки, графические движки и любые другие нативные компоненты.

Целевые платформы

Kotlin/Native поддерживает следующие платформы:

  • Linux
  • Windows (через MinGW)
  • Android NDK
  • Apple-платформы для macOS, iOS, tvOS и watchOS

Для компиляции под Apple-платформы нужно установить Xcode и его инструменты командной строки.

Полный список поддерживаемых целей и хостов.

Совместимость

Kotlin/Native поддерживает двустороннюю совместимость с нативными языками программирования для разных операционных систем. Компилятор может создавать исполняемые файлы для многих платформ, статические или динамические библиотеки C и Swift/Objective-C-фреймворки.

Совместимость с C

Kotlin/Native предоставляет совместимость с C. Существующие библиотеки C можно использовать напрямую из Kotlin-кода.

Чтобы узнать больше, пройдите следующие руководства:

Совместимость со Swift/Objective-C

Kotlin/Native предоставляет совместимость со Swift через Objective-C. Kotlin-код можно использовать напрямую из приложений на Swift/Objective-C для macOS и iOS.

Чтобы узнать больше, пройдите руководство Kotlin/Native как Apple-фреймворк.

Использование кода на нескольких платформах

Kotlin/Native включает набор готовых платформенных библиотек, которые помогают использовать Kotlin-код в разных проектах. POSIX, gzip, OpenGL, Metal, Foundation и многие другие популярные библиотеки и Apple-фреймворки уже импортированы и включены в пакет компилятора как библиотеки Kotlin/Native.

Kotlin/Native является частью технологии Kotlin Multiplatform, которая помогает использовать общий код на нескольких платформах, включая Android, iOS, JVM, web и native. Мультиплатформенные библиотеки предоставляют необходимые API для общего Kotlin-кода и позволяют писать общие части проектов на Kotlin в одном месте.

Менеджер памяти

Kotlin/Native использует автоматический менеджер памяти, похожий на JVM и Go. У него есть собственный трассирующий сборщик мусора, который также интегрирован с ARC в Swift/Objective-C.

Потребление памяти контролируется пользовательским аллокатором. Он оптимизирует использование памяти и помогает предотвращать резкие всплески выделения памяти.