{"id":28724180,"url":"https://github.com/featurevisor/featurevisor-kotlin","last_synced_at":"2026-03-04T02:33:03.996Z","repository":{"id":188750697,"uuid":"679341509","full_name":"featurevisor/featurevisor-kotlin","owner":"featurevisor","description":"Kotlin SDK for Featurevisor (in progress)","archived":false,"fork":false,"pushed_at":"2025-08-21T12:18:59.000Z","size":239,"stargazers_count":3,"open_issues_count":7,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-21T13:37:22.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/featurevisor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-16T16:11:57.000Z","updated_at":"2024-12-27T05:57:33.000Z","dependencies_parsed_at":"2023-10-10T17:07:56.040Z","dependency_job_id":"2c317764-a922-4058-8e83-b4d7b978bd3d","html_url":"https://github.com/featurevisor/featurevisor-kotlin","commit_stats":null,"previous_names":["featurevisor/featurevisor-kotlin"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/featurevisor/featurevisor-kotlin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/featurevisor%2Ffeaturevisor-kotlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/featurevisor%2Ffeaturevisor-kotlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/featurevisor%2Ffeaturevisor-kotlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/featurevisor%2Ffeaturevisor-kotlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/featurevisor","download_url":"https://codeload.github.com/featurevisor/featurevisor-kotlin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/featurevisor%2Ffeaturevisor-kotlin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30070117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T01:03:42.280Z","status":"online","status_checked_at":"2026-03-04T02:00:07.464Z","response_time":59,"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":[],"created_at":"2025-06-15T10:09:23.506Z","updated_at":"2026-03-04T02:33:03.966Z","avatar_url":"https://github.com/featurevisor.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub Release](https://img.shields.io/github/v/release/featurevisor/featurevisor-kotlin)\n\n# featurevisor-kotlin\n\nThis repository is a work in progress to port the [Featurevisor](https://featurevisor.com) JavaScript SDK to Kotlin for supporting Android apps.\n\nWe are not ready yet. Please come back later.\n\n## Installation\n\nIf you are using groovy, build.gradle -\n\n```\nrepositories {\n    mavenCentral()\n    maven { url 'https://jitpack.io' }\n}\n\ndependencies {\n    implementation 'com.github.featurevisor:featurevisor-kotlin:LATEST_VERSION'\n}\n```\n\nIf you are using Kotlin DSL, build.gradle.kts -   \n\n```\nrepositories {\n    mavenCentral()\n    maven(\"https://jitpack.io\")\n}\n\ndependencies {\n    implementation(\"com.github.featurevisor:featurevisor-kotlin:LATEST_VERSION\")\n}\n```\n\n## Usage\n\n...\n\n## Development\n\nWe wish to reach feature parity with the existing JavaScript SDK: https://featurevisor.com/docs/sdks/\n\n### Requirements\n\nInstall dependencies with Homebrew:\n\n```\n$ brew install openjdk\n$ brew install gradle\n```\n\n### Running locally\n\n```\n$ gradle build\n$ gradle test\n```\n\n### TODOs\n\n- [ ] Add documentation in README for Installation and Usage sections\n- [ ] Verify if `JavaLanguageVersion` set in `build.gradle.kt` is correct (set to `8` now)\n- [x] Set up CI/CD pipeline\n- [x] Publish as package\n- [x] Find a compatible MurmurHash implementation for Kotlin/JVM\n- [ ] Port the SDK API as defined below\n\n### SDK API\n\nWe are breaking down the various parts that we need to migrate to Swift in the sections below:\n\n| Section             | Task                                             | Status |\n|---------------------|--------------------------------------------------|--------|\n| Files               | `@featurevisor/types` ➡️ `Types.kt`              | ✅      |\n|                     | SDK's `bucket.ts` ➡️ `Bucket.kt`                 | ✅      |\n|                     | SDK's `conditions.ts` ➡️ `Conditions.kt`         | ✅      |\n|                     | SDK's `datafileReader.ts` ➡️ `DatafileReader.kt` | ✅      |\n|                     | SDK's `emitter.ts` ➡️ `Emitter.kt`               | ✅      |\n|                     | SDK's `feature.ts` ➡️ `Instance+Feature.kt`      | ✅      |\n|                     | SDK's `instance.ts` ➡️ `Instance.kt`             | ✅      |\n|                     | SDK's `logger.ts` ➡️ `Logger.kt`                 | ✅      |\n|                     | SDK's `segments.ts` ➡️ `Instance+Segments.kt`    | ✅      |\n|                     |                                                  |        |\n| Constructor options | `bucketKeySeparator`                             |        |\n|                     | `configureBucketKey`                             |        |\n|                     | `configureBucketValue`                           |        |\n|                     | `datafile`                                       |        |\n|                     | `datafileUrl`                                    |        |\n|                     | `handleDatafileFetch`                            |        |\n|                     | `initialFeatures`                                |        |\n|                     | `interceptContext`                               |        |\n|                     | `logger`                                         |        |\n|                     | `onActivation`                                   |        |\n|                     | `onReady`                                        |        |\n|                     | `onRefresh`                                      |        |\n|                     | `onUpdate`                                       |        |\n|                     | `refreshInternal`                                |        |\n|                     | `stickyFeatures`                                 |        |\n|                     |                                                  |        |\n| Instance methods    | `constructor` missing fetch datafile content     |        |\n|                     | `setDatafile` removed to workaround init issues  |        |\n|                     | `setStickyFeatures`                              |        |\n|                     | `getRevision`                                    |        |\n|                     | `getFeature`                                     |        |\n|                     | `getBucketKey`                                   |        |\n|                     | `getBucketValue`                                 |        |\n|                     | `isReady`                                        |        |\n|                     | `refresh`                                        |        |\n|                     | `startRefreshing`                                |        |\n|                     | `stopRefreshing`                                 |        |\n|                     | `evaluateFlag`                                   |        |\n|                     | `isEnabled`                                      |        |\n|                     | `evaluateVariation`                              |        |\n|                     | `getVariation`                                   |        |\n|                     | `activate`                                       |        |\n|                     | `evaluateVariable`                               |        |\n|                     | `getVariable`                                    |        |\n|                     | `getVariableBoolean`                             |        |\n|                     | `getVariableString`                              |        |\n|                     | `getVariableInteger`                             |        |\n|                     | `getVariableDouble`                              |        |\n|                     | `getVariableArray`                               |        |\n|                     | `getVariableObject`                              |        |\n|                     | `getVariableJSON`                                |        |\n|                     |                                                  |        |\n| Functions           | `createInstance` missing proper error handling   |        |\n|                     | `fetchDatafileContent`                           |        |\n|                     | `getValueByType`                                 |        |\n\n### Test runner\n\nWe should also have an executable as an output of this repository that can be used to run the test specs against the Kotlin SDK: https://featurevisor.com/docs/testing/\n\nExample command:\n\n```\n$ cd path/to/featurevisor-project-with-yamls\n$ featurevisor-kotlin test\n```\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeaturevisor%2Ffeaturevisor-kotlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffeaturevisor%2Ffeaturevisor-kotlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffeaturevisor%2Ffeaturevisor-kotlin/lists"}