Packages

Generate type-safe Kotlin Multiplatform clients directly from your Ash resources and actions, ensuring end-to-end type safety between your backend and frontend. **Alpha Software** - This library is under active development. The API may change between versions.

Current section

Files

Jump to
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.2] - 2025-12-21
### Fixed
- Improved Kotlin codegen for sparse RPC responses
- Simplified RpcResult from sealed class to data class with `dataAs<T>()` helper
- Made AshRpcError fields nullable for flexibility
## [0.1.1] - 2025-12-21
### Fixed
- Fixed GitHub URLs to point to correct repository (udin-io/ash_kotlin_multiplatform)
## [0.1.0] - 2025-12-21
> **Alpha Release** - This is an early alpha release. The API may change between versions.
### Added
- Initial release of AshKotlinMultiplatform
- `AshKotlinMultiplatform.Resource` extension for resource-level Kotlin configuration
- `type_name` option for custom Kotlin class names
- `field_names` option for mapping field names to valid Kotlin identifiers
- `argument_names` option for mapping action argument names
- `AshKotlinMultiplatform.Rpc` extension for domain-level RPC configuration
- `rpc_action` for exposing Ash actions as RPC endpoints
- `typed_query` for defining pre-configured queries with filters
- Metadata exposure control
- Code generation via `mix ash_kotlin_multiplatform.codegen`
- Kotlin data classes with `@Serializable` annotations
- Sealed classes for type-safe action results
- Input configuration types for each action
- Pagination support (offset and keyset)
- Optional filter types for type-safe filtering
- Optional validation functions and annotations
- Phoenix Channel client generation for WebSocket support
- HTTP client generation using Ktor
- kotlinx.serialization integration
- Support for kotlinx-datetime and java.time
- Configurable nullable strategies (explicit vs platform types)
- Field name formatters (camel case conversion)
- Lifecycle hooks for request/response processing
- Verifiers for compile-time validation
- Field name validation
- Unique type name validation
- Action type compatibility validation
- Resource identity validation
### Dependencies
- Requires Ash 3.7+
- Requires Spark 2.0+
- Requires Elixir 1.15+
[Unreleased]: https://github.com/udin-io/ash_kotlin_multiplatform/compare/v0.1.2...HEAD
[0.1.2]: https://github.com/udin-io/ash_kotlin_multiplatform/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/udin-io/ash_kotlin_multiplatform/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/udin-io/ash_kotlin_multiplatform/releases/tag/v0.1.0