{"id":35377706,"url":"https://github.com/nehemiaharchives/lucene-kmp","last_synced_at":"2026-01-04T06:23:17.231Z","repository":{"id":290881279,"uuid":"946334062","full_name":"nehemiaharchives/lucene-kmp","owner":"nehemiaharchives","description":"[WIP] Apache Lucene port for Kotlin Multiplatform","archived":false,"fork":false,"pushed_at":"2025-12-20T12:12:09.000Z","size":5349,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-21T23:05:18.484Z","etag":null,"topics":["android","android-lib","android-library","apachelucene","ios","ios-library","kmp","kmp-library","kotlin","kotlin-library","kotlin-multiplatform","lucene"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nehemiaharchives.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-03-11T01:22:11.000Z","updated_at":"2025-12-20T10:18:58.000Z","dependencies_parsed_at":"2025-05-01T04:32:39.217Z","dependency_job_id":"1b68ec5d-b707-487a-b3dd-fe92fb087c18","html_url":"https://github.com/nehemiaharchives/lucene-kmp","commit_stats":null,"previous_names":["nehemiaharchives/lucene-kmp"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/nehemiaharchives/lucene-kmp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehemiaharchives%2Flucene-kmp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehemiaharchives%2Flucene-kmp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehemiaharchives%2Flucene-kmp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehemiaharchives%2Flucene-kmp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nehemiaharchives","download_url":"https://codeload.github.com/nehemiaharchives/lucene-kmp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehemiaharchives%2Flucene-kmp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28198270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-04T02:00:06.065Z","response_time":58,"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":["android","android-lib","android-library","apachelucene","ios","ios-library","kmp","kmp-library","kotlin","kotlin-library","kotlin-multiplatform","lucene"],"created_at":"2026-01-02T04:50:49.815Z","updated_at":"2026-01-04T06:23:17.225Z","avatar_url":"https://github.com/nehemiaharchives.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lucene Kotlin Multiplatform\n\n[![CI](https://github.com/nehemiaharchives/lucene-kmp/actions/workflows/ci.yml/badge.svg)](https://github.com/nehemiaharchives/lucene-kmp/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/nehemiaharchives/lucene-kmp/graph/badge.svg?token=YRN8URPQA4)](https://codecov.io/gh/nehemiaharchives/lucene-kmp)\n\n## What is it?\n\nThis repository contains a lucene-kmp library project, a [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) port of [apache lucene](https://github.com/apache/lucene/) that is deployable to [Maven Central](https://central.sonatype.com/).\n\n## Supported platforms\n* jvm\n* android\n* iOS (iosX64, iosArm64, iosSimulatorArm64)\n\n## Lucene Java Source Project\ncurrently the port is based on following commit of lucene main branch which is some commits before lucene 10.2.0 release\n```\ncommit ec75fcad5a4208c7b9e35e870229d9b703cda8f3 (HEAD -\u003e main, origin/main, origin/HEAD)\nAuthor: Robert Muir \u003crmuir@apache.org\u003e\nDate:   Sun Mar 2 14:11:10 2025 -0500\n\n    reformat the python code with 'make reformat' and enable format in CI check\n\n    currently the python code has a mix of indentation, styles, imports\n    ordering, etc. for example, it is very difficult to work with mixed\n    indentation levels: the language is sensitive to indentation.\n\n    reformat all the code with 'make reformat' and enable format checks when\n    linting. It works like spotless, just don't think about it.\n```\n\n## PROGRESS\n### Classes needed to port to write minimum index:\n* [x] org.apache.lucene.index.IndexWriter\n* [x] org.apache.lucene.index.IndexWriterConfig\n* [x] org.apache.lucene.store.FSDirectory\n* [x] org.apache.lucene.analysis.Analyzer\n* [x] org.apache.lucene.document.Document\n* [x] org.apache.lucene.document.Field\n* [x] org.apache.lucene.document.IntPoint\n* [x] org.apache.lucene.document.StoredField\n* [x] org.apache.lucene.document.TextField\n\n### Classes needed to port to perform minimum search:\n* [x] org.apache.lucene.index.DirectoryReader\n* [x] org.apache.lucene.index.StandardDirectoryReader\n* [x] org.apache.lucene.queryparser.classic.QueryParser\n* [x] org.apache.lucene.search.IndexSearcher\n* [x] org.apache.lucene.store.FSLockFactory\n* [x] org.apache.lucene.store.NIOFSDirectory\n* [x] org.apache.lucene.document.IntPoint\n* [x] org.apache.lucene.search.Query\n* [x] org.apache.lucene.search.BooleanQuery\n* [x] org.apache.lucene.search.BooleanClause\n* [x] org.apache.lucene.search.Sort\n* [x] org.apache.lucene.search.SortField\n\n### Unit tests needed to port to verify the above classes:\n\n[PROGRESS.md](PROGRESS.md) for overview of the progress including unit test classes. The file is automatically generated by [progress.main.kts](progress.main.kts) script which also outputs progress report to the console.\n\n[PROGRESS2.md](PROGRESS2.md) for more detailed progress report. The file is automatically generated by [progressv2.main.kts](progressv2.main.kts) script which also outputs progress report to the console.\n\n## TODO\n[TODO.md](TODO.md) and [TODO_TEST.md](TODO_TEST.md) is generated by AI based on progress docs to tell what to port next.\n\nAfter completing those TODOs, we need to catch up with lucene main branch automatically using AI agent such as GitHub Copilot, [open ai codex](http://www.chatgpt.com/codex), [google jules](https://jules.google.com), and/or [jetbrains junie](https://www.jetbrains.com/junie/) one commit by commit up to 10.2.0 and later versions of Lucene.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehemiaharchives%2Flucene-kmp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnehemiaharchives%2Flucene-kmp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehemiaharchives%2Flucene-kmp/lists"}