{"id":18576836,"url":"https://github.com/niqdev/kotlin-fun","last_synced_at":"2026-03-01T04:10:19.841Z","repository":{"id":37539843,"uuid":"331336179","full_name":"niqdev/kotlin-fun","owner":"niqdev","description":"Kotlin notes","archived":false,"fork":false,"pushed_at":"2025-06-02T13:03:01.000Z","size":1760,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-02T23:06:57.611Z","etag":null,"topics":["aws","functional-programming","json-schema","kotlin","ktor","recursion-schemes","serverless"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niqdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-20T14:45:41.000Z","updated_at":"2025-06-02T11:37:02.000Z","dependencies_parsed_at":"2023-12-06T20:32:46.806Z","dependency_job_id":"b09f10a2-d669-4dd3-9e3c-b3f5df563a97","html_url":"https://github.com/niqdev/kotlin-fun","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/niqdev/kotlin-fun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niqdev%2Fkotlin-fun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niqdev%2Fkotlin-fun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niqdev%2Fkotlin-fun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niqdev%2Fkotlin-fun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niqdev","download_url":"https://codeload.github.com/niqdev/kotlin-fun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niqdev%2Fkotlin-fun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29960236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","functional-programming","json-schema","kotlin","ktor","recursion-schemes","serverless"],"created_at":"2024-11-06T23:26:50.424Z","updated_at":"2026-03-01T04:10:19.824Z","avatar_url":"https://github.com/niqdev.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kotlin-fun\n\n[![Continuous Integration][ci-image]][ci-url]\n\n[ci-image]: https://github.com/niqdev/kotlin-fun/actions/workflows/ci.yml/badge.svg\n[ci-url]: https://github.com/niqdev/kotlin-fun/actions/workflows/ci.yml\n\nThe project's name was inspired by [this](https://www.youtube.com/watch?v=GrzM3jK3Y2E) talk!\n\n* Kotlin [docs](https://kotlinlang.org/docs/home.html)\n\n```bash\n# https://sdkman.io\n# use LTS e.g. 8/11/17/21\nsdk install java 17-open\n\n./gradlew tasks\n./gradlew :modules:jok:tasks\n\n./gradlew clean build\n./gradlew test\n./gradlew :modules:app:test --tests *AppTest\n./gradlew run\n\n# custom main tasks\n./gradlew runReactorExample\n./gradlew runCliktExample --args=\"--help\"\n./gradlew runJsonExample\n./gradlew runMyStream\n./gradlew runMyList --debug-jvm\n./gradlew -Dkotlinx.coroutines.debug runCoroutineComparison\n./gradlew :modules:aws-local:run\n\n# format code\n./gradlew lintKotlin\n./gradlew formatKotlin\n\n# download sources\n./gradlew cleanIdea idea\n\n# dependency tree\n./gradlew :modules:app:dependencies\n./gradlew -q modules:app:dependencyInsight --dependency arrow-core\n\n# custom plugin\n./gradlew hello\n\n# generate binary\nmake app-bin\n./kfun\n```\n\n## Modules\n\n* Kotlin in Action [ [book](https://www.manning.com/books/kotlin-in-action) | [notes](modules/kia/src/main/kotlin/com/github/niqdev) ]\n* The Joy of Kotlin [ [book](https://www.manning.com/books/the-joy-of-kotlin) | [notes](modules/jok/src/main/kotlin/com/github/niqdev) ]\n* Functional Programming in Kotlin [ [book](https://www.manning.com/books/functional-programming-in-kotlin) | TODO ]\n* Category Theory for Programmers [ [book](https://github.com/hmemcpy/milewski-ctfp-pdf) | TODO ]\n* Crafting Interpreters [ [book](https://craftinginterpreters.com/contents.html) | [lox](modules/lox) ]\n* [rekursive](modules/rekursive): Recursion schemes\n* [bool](modules/bool): Free Boolean Algebra interpreter\n* [json-schema](modules/json-schema): JSON Schema validation\n* [aws-local](modules/aws-local)\n* [aws-serverless](modules/aws-serverless): AWS Lambda with Serverless and Localstack\n* [http](modules/http): HTTP client and server\n* [examples](modules/app/src/main/kotlin/com/github/niqdev)\n\n\u003c!--\n\n## TODO\n\n* [x] dependency management: [Dependabot](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically)\n* [x] linting/formatting: [ktlint](https://ktlint.github.io)\n* [x] Gradle multi-project: [doc](https://docs.gradle.org/current/userguide/multi_project_builds.html)\n* [x] Gradle `buildSrc`\n* [ ] github action\n    * [x] CI/CD\n    * [ ] release management (git commit/tag)\n* [ ] markdown documentation: [dokka](https://kotlin.github.io/dokka) vs [docusaurus](https://docusaurus.io)\n* [x] property based tests with [Kotest](https://kotest.io)\n* [x] http with [Ktor](https://ktor.io)\n    * [x] logging\n    * [x] config with [hoplite](https://github.com/sksamuel/hoplite)\n    * [ ] server\n    * [ ] client\n* [ ] postgres\n* [ ] kafka\n\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniqdev%2Fkotlin-fun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniqdev%2Fkotlin-fun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniqdev%2Fkotlin-fun/lists"}