
Bindings to Apple's Foundation APIs, offering an idiomatic native API via line-by-line transliteration and source-provenance headers to track upstream sources while targeting feature parity.
This is a Kotlin Multiplatform line-by-line transliteration port of objc2-foundation.
Original Project: This port is based on objc2-foundation. All design credit and project intent belong to the upstream authors; this repository is a faithful port to Kotlin Multiplatform with no behavioural changes intended.
This is an in-progress port. The goal is feature parity with the upstream Rust crate while providing a native Kotlin Multiplatform API. Every Kotlin file carries a // port-lint: source <path> header naming its upstream Rust counterpart so the AST-distance tool can track provenance.
The text below is reproduced from
https://github.com/madsmtm/objc2. It is the upstream project's own description and remains under the upstream authors' authorship; links have been rewritten to absolute upstream URLs where appropriate so they continue to resolve from this repository.
Rust bindings to Apple's framework Foundation.
This README is kept intentionally small to consolidate the documentation, see the Rust docs for more details on this crate.
This crate is part of the objc2 project,
see that for related crates.
dependencies {
implementation("io.github.kotlinmania:objc2-foundation-kotlin:0.1.0")
}./gradlew build
./gradlew testSee AGENTS.md and CLAUDE.md for translator discipline, port-lint header convention, and Rust → Kotlin idiom mapping.
This Kotlin port is distributed under the same license terms as the upstream objc2-foundation. See LICENSE (and any sibling LICENSE-* / NOTICE files mirrored from upstream) for the full text.
Original work copyrighted by the objc2-foundation authors.
Kotlin port: Copyright (c) 2026 Sydney Renee and The Solace Project.
Thanks to the objc2-foundation maintainers and contributors for the original Rust implementation. This port reproduces their work in Kotlin Multiplatform; bug reports about upstream design or behavior should go to the upstream repository.
This is a Kotlin Multiplatform line-by-line transliteration port of objc2-foundation.
Original Project: This port is based on objc2-foundation. All design credit and project intent belong to the upstream authors; this repository is a faithful port to Kotlin Multiplatform with no behavioural changes intended.
This is an in-progress port. The goal is feature parity with the upstream Rust crate while providing a native Kotlin Multiplatform API. Every Kotlin file carries a // port-lint: source <path> header naming its upstream Rust counterpart so the AST-distance tool can track provenance.
The text below is reproduced from
https://github.com/madsmtm/objc2. It is the upstream project's own description and remains under the upstream authors' authorship; links have been rewritten to absolute upstream URLs where appropriate so they continue to resolve from this repository.
Rust bindings to Apple's framework Foundation.
This README is kept intentionally small to consolidate the documentation, see the Rust docs for more details on this crate.
This crate is part of the objc2 project,
see that for related crates.
dependencies {
implementation("io.github.kotlinmania:objc2-foundation-kotlin:0.1.0")
}./gradlew build
./gradlew testSee AGENTS.md and CLAUDE.md for translator discipline, port-lint header convention, and Rust → Kotlin idiom mapping.
This Kotlin port is distributed under the same license terms as the upstream objc2-foundation. See LICENSE (and any sibling LICENSE-* / NOTICE files mirrored from upstream) for the full text.
Original work copyrighted by the objc2-foundation authors.
Kotlin port: Copyright (c) 2026 Sydney Renee and The Solace Project.
Thanks to the objc2-foundation maintainers and contributors for the original Rust implementation. This port reproduces their work in Kotlin Multiplatform; bug reports about upstream design or behavior should go to the upstream repository.