Target Kinds
Once ships target kinds for supported languages and platforms. Each target kind defines its accepted attributes and dependencies, the providers it emits, and the capabilities it exposes. Its reference page also lists known limitations and a copyable declaration when one is available.
Use once query schema to inspect the same
contract from the command line. See Ecosystems for
help choosing between typed target kinds and scripted automation.
Each schema reports whether an attribute is required, configurable, and implemented, plus any fixed set of allowed values. An attribute marked as not implemented remains discoverable for compatibility, but validation rejects it with a focused repair before analysis. Tool requirements list the executable alternatives Once can use, so an agent can discover missing setup without reading prose documentation.
Every target kind includes at least one materializable starter. Repository
contributors can run mise run examples:verify-portable to materialize and
execute the portable starter set against the release command-line interface.
Platform-specific starters remain covered by their dedicated toolchain setup
and action tests.
Lint target kinds#
ruff_lint: Python analysis with Ruffeslint_lint: JavaScript and TypeScript analysis with ESLintgolangci_lint: Go analysis with golangci-lintswiftlint_lint: Swift analysis with SwiftLintdetekt_lint: Kotlin analysis with detektcredo_lint: Elixir analysis with Credorubocop_lint: Ruby analysis with RuboCop
See Linting for the shared result and failure-policy contract. Use Custom lint target kinds when the required analyzer is not built in.
Apple target kinds#
apple_library: Swift, Objective-C, C, and C++ static libraryswift_macro: Swift compiler-plugin dynamic library loaded byapple_librarydependenciesapple_framework: dynamic Apple framework bundleapple_application: Apple application bundleapple_thinned_package: device-specific archive for application size analysisapple_test_bundle: XCTest bundle assembled for an external runner
Android target kinds#
android_resource: Android resources and assets compiled into a static resource packageandroid_library: Android Java library packaged as a Java archive and Android library archiveandroid_local_test: Android Java and Kotlin local tests run on the host Java virtual machineandroid_instrumentation_test: Android instrumentation tests run on a device or emulatorandroid_binary: Android application package built from Java sources, resources, native libraries, Android resource dependencies, and Android library dependencies
Swift target kinds#
swift_package_dependencies: locked Swift package graph and selected static products exposed to Apple targetsswift_package_pin: one synthetic locked Swift package identity and its transitive edgesswift_android_library: Swift shared library compiled for Android and packaged through Android native-library providers
Kotlin target kinds#
kotlin_jvm_library: Kotlin library compiled into a Java archive with typed classpath roleskotlin_jvm_binary: runnable Kotlin main class for the host Java virtual machinekotlin_jvm_test: host-side Kotlin tests with normalized Once test resultskotlin_apple_framework: Kotlin/Native framework bundle consumed by Apple application and test targets
Elixir target kinds#
mix_workspace: native project seed that derives development, test, production, lint, test, and release targets frommix.exsmix_dependencies: locked Mix and Hex dependency graph imported as independently scheduled packagesmix_package: one generated package with locked identity and native Mix or Rebar compilationmix_project: first-party Mix project compiled against separately cached application dependenciesmix_release: cacheable Mix release assembled from a compiled first-party projectelixir_library: Elixir code compiled into cacheable bytecode with a target-level compiler actionelixir_test: ExUnit tests run against an already compiled Elixir application
Python target kinds#
pytest_test: pytest suites with exact case execution and automatic file or case batching
Ruby target kinds#
rspec_test: Ruby Specification suites with exact example execution and automatic batchingminitest_test: Minitest files exposed as independently scheduled units
JavaScript target kinds#
vitest_test: Vitest suites with exact case execution and automatic batchingjest_test: Jest suites with exact case execution and automatic batching
React Native target kinds#
react_native_dependencies: locked JavaScript dependency graph and native-module identitiesreact_native_module: one resolver-generated native modulereact_native_autolinking: normalized native-module discoveryreact_native_codegen: New Architecture native interface generationreact_native_bundle: Metro bundle, Hermes bytecode, assets, and source mapreact_native_apple_application: CocoaPods and Xcode application build and simulator launchreact_native_android_application: Gradle application build and emulator launchreact_native_metro: live development server with Fast Refresh
Rust target kinds#
cargo_workspace: native project seed that derives first-party and locked external targets fromCargo.tomlcargo_dependencies: cacheable Cargo dependency set consumed by Rust targetsrust_library: Rust library artifact consumed by downstream Rust targets, or native static or shared libraries consumed by Apple and Android targetsrust_mobile_library: Rust native library materialized by Apple and Android consumers under one target labelrust_binary: Rust executable built from a main crate and Rust deps, with build and run capabilitiesrust_test: Rust test crate compiled withrustc --testand run through Once's test capabilityrust_crate: resolved third-party Cargo package lowered into a Rust library targetrust_proc_macro: Rust procedural macro compiled for Rust targets
Go target kinds#
go_dependencies: locked, vendored Go module graph imported as queryable targetsgo_module: one generated checksum-bound Go module and its complete vendored source treego_source: reusable Go package sources, embedded files, data, and dependency metadatago_library: Go package archive with cgo, build constraint, sanitizer, coverage, and cross-compilation controlsgo_binary: runnable Go executable or exported native librarygo_test: compiled Go tests with exact filtering, normalized results, native events, and coverage
C target kinds#
c_library: C and C++ static library provider consumed by native target kinds
CMake target kinds#
cmake_project: coarse cacheable CMake configure and build boundary with explicitly declared productscmake_workspace: checked configured graph snapshot imported as queryable targetscmake_target: resolver-generated logical CMake target metadata
Zig target kinds#
zig_dependencies: locked Zig package graph imported frombuild.zig.zonzig_package: one content-identified Zig package lowered into a module providerzig_library: Zig module provider compiled at the use site by downstream Zig targetszig_c_library: Zig module generated from C provider headerszig_binary: Zig executable built from a root module, Zig module dependencies, and C provider dependencieszig_static_library: Zig static library exposed to native linkerszig_shared_library: Zig shared library exposed to native linkers and Android packagingzig_test: Zig test target compiled and run through Once's test capabilityzig_configure: configured Zig library target using Once-native target attributeszig_configure_binary: configured Zig executable target using Once-native target attributeszig_configure_test: configured Zig test target using Once-native target attributes