1- # ZodKmp: Kotlin Multiplatform Validation Library
1+ # ZodKmp: Kotlin Multiplatform Validation
22
3- [ ![ License] ( https://img.shields.io/github/license/colinhacks/zod )] ( LICENSE )
3+
4+ [ ![ Maven Central] ( https://img.shields.io/maven-central/v/io.github.piashcse/zodkmp.svg )] ( https://search.maven.org/artifact/io.github.piashcse/zodkmp )
45[ ![ Kotlin Version] ( https://img.shields.io/badge/kotlin-2.2.20-blue.svg?logo=kotlin )] ( http://kotlinlang.org )
5- [ ![ Platform] ( https://img.shields.io/badge/platform-android%20|%20ios-lightgrey )] ( # )
6+ ![ badge-Android] ( https://img.shields.io/badge/Platform-Android-brightgreen )
7+ ![ badge-iOS] ( https://img.shields.io/badge/Platform-iOS-lightgray )
8+ ![ badge-desktop] ( http://img.shields.io/badge/Platform-Desktop-4D76CD.svg?style=flat )
9+ ![ badge-web] ( https://img.shields.io/badge/Platform-Web-blueviolet.svg?style=flat )
10+ [ ![ License] ( https://img.shields.io/github/license/colinhacks/zod )] ( LICENSE )
11+ <a href =" https://github.com/piashcse " ><img alt =" License " src =" https://img.shields.io/static/v1?label=GitHub&message=piashcse&color=C51162 " /></a >
612
713ZodKmp is a Kotlin Multiplatform implementation of the popular [ Zod] ( https://zod.dev/ ) TypeScript validation library. It provides a declarative, type-safe way to validate data in your Kotlin Multiplatform projects.
814
15+
16+ ## Platform Support
17+
18+ ZodKmp supports the following platforms:
19+
20+ - Android (JVM)
21+ - iOS (Native)
22+ - JVM
23+ - JS (JavaScript)
24+ - Native (Linux, Windows, macOS)
25+
926## Table of Contents
1027
1128- [ Features] ( #features )
@@ -454,16 +471,6 @@ when (result) {
454471}
455472```
456473
457- ## Platform Support
458-
459- ZodKmp supports the following platforms:
460-
461- - Android (JVM )
462- - iOS (Native )
463- - JVM
464- - JS (JavaScript )
465- - Native (Linux , Windows , macOS)
466-
467474## Contributing
468475
469476Contributions are welcome! Please feel free to submit a Pull Request .
@@ -473,79 +480,42 @@ Contributions are welcome! Please feel free to submit a Pull Request.
4734803 . Commit your changes (`git commit - m ' Add some AmazingFeature' `)
4744814 . Push to the branch (`git push origin feature/ AmazingFeature `)
4754825 . Open a Pull Request
483+ ## 👨 Developed By
476484
477- ## Publishing to Maven Central
478-
479- ZodKmp is published to Maven Central . The library is configured to be published using the vanniktech Maven Publish plugin.
485+ < a href = " https://twitter.com/piashcse " target = " _blank " >
486+ < img src = " https://avatars.githubusercontent.com/piashcse " width = " 90 " align = " left " >
487+ < / a >
480488
481- ### Prerequisites for Publishing
489+ ** Mehedi Hassan Piash **
482490
483- 1 . ** Sonatype Account ** : You need an account on Sonatype OSSRH (OSS Repository Hosting )
484- 2 . ** GPG Key ** : Set up GPG signing keys for artifact signing
485- 3 . ** GitHub Secrets ** : For automated publishing, configure the following secrets in your GitHub repository:
491+ [! [Twitter ](https: // img.shields.io/badge/-Twitter-1DA1F2?logo=x&logoColor=white&style=for-the-badge)](https://twitter.com/piashcse)
492+ [! [Medium ](https: // img.shields.io/badge/-Medium-00AB6C?logo=medium&logoColor=white&style=for-the-badge)](https://medium.com/@piashcse)
493+ [! [Linkedin ](https: // img.shields.io/badge/-LinkedIn-0077B5?logo=linkedin&logoColor=white&style=for-the-badge)](https://www.linkedin.com/in/piashcse/)
494+ [! [Web ](https: // img.shields.io/badge/-Web-0073E6?logo=appveyor&logoColor=white&style=for-the-badge)](https://piashcse.github.io/)
495+ [! [Blog ](https: // img.shields.io/badge/-Blog-0077B5?logo=readme&logoColor=white&style=for-the-badge)](https://piashcse.blogspot.com)
486496
487- ```bash
488- MAVEN_CENTRAL_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
489- MAVEN_CENTRAL_PASSWORD : ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
490- SIGNING_KEY_ID : ${{ secrets.SIGNING_KEY_ID }}
491- SIGNING_PASSWORD : ${{ secrets.SIGNING_PASSWORD }}
492- GPG_KEY_CONTENTS : ${{ secrets.GPG_KEY_CONTENTS }}
493- ```
494-
495- 4 . ** Library Version ** : The version is managed in `gradle.properties`:
496-
497- ```properties
498- library.version= 1 .x.y
499- ```
500-
501- ### Automated Release Process
502-
503- The library uses GitHub Actions for automated releases and publishing. For detailed instructions, see the [RELEASING .md](RELEASING .md) document.
504-
505- #### Creating a New Release
506-
507- 1 . ** Via GitHub UI ** : Create a new release in the GitHub releases page with a tag in the format `vX.Y .Z ` (e.g., `v1.0.0 `)
508- 2 . ** The workflow** `.github/ workflows/ publish.yml` will automatically trigger and publish to Maven Central
509-
510- ### Verification
511-
512- To verify artifacts locally before publishing to Maven Central :
513-
514- ```bash
515- ./ gradlew publishToMavenCentral -- no- configuration- cache
516- ```
517-
518- ### Manual Publishing
519-
520- For manual publishing (if needed):
521-
522- 1 . ** Build Artifacts ** : Run the build to ensure everything is working:
497+ ## License
523498
524- ```bash
525- ./ gradlew build
526499```
527-
528- 2 . ** Publish ** : Publish to Sonatype OSSRH :
529-
530- ```bash
531- ./ gradlew publishToMavenCentral -- no- configuration- cache
500+ MIT License
501+
502+ Copyright (c) 2025 Mehedi Hassan Piash
503+
504+ Permission is hereby granted, free of charge, to any person obtaining a copy
505+ of this software and associated documentation files (the " Software" ), to deal
506+ in the Software without restriction, including without limitation the rights
507+ to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
508+ copies of the Software , and to permit persons to whom the Software is
509+ furnished to do so, subject to the following conditions:
510+
511+ The above copyright notice and this permission notice shall be included in all
512+ copies or substantial portions of the Software .
513+
514+ THE SOFTWARE IS PROVIDED " AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
515+ IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
516+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
517+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
518+ LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
519+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
520+ SOFTWARE .
532521```
533-
534- The vanniktech plugin handles publishing automatically to Maven Central .
535-
536- ### Required Properties
537-
538- The following properties are required for Maven Central compliance and are defined in `gradle.properties`:
539-
540- - `GROUP ` - The Maven group ID (e.g., `io.github.piashcse`)
541- - `POM_ARTIFACT_ID ` - The artifact ID (e.g., `zodkmp`)
542- - `POM_NAME ` - The display name of the library
543- - `POM_DESCRIPTION ` - A description of the library
544- - `POM_URL ` - The project URL
545- - `POM_LICENSE_NAME `, `POM_LICENSE_URL ` - License information
546- - `POM_DEVELOPER_ID `, `POM_DEVELOPER_NAME `, `POM_DEVELOPER_EMAIL ` - Developer information
547- - `POM_SCM_URL `, `POM_SCM_CONNECTION `, `POM_SCM_DEV_CONNECTION ` - Source code management information
548-
549- ## License
550-
551- Distributed under the MIT License . See `LICENSE ` for more information.
0 commit comments