{"id":28196038,"url":"https://github.com/devnatan/xclense","last_synced_at":"2025-07-27T22:33:14.625Z","repository":{"id":290267449,"uuid":"972815119","full_name":"DevNatan/xclense","owner":"DevNatan","description":"XCFramework Linting and Analysis for Kotlin Multiplatform SDKs","archived":false,"fork":false,"pushed_at":"2025-05-02T19:03:36.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T14:15:17.459Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/DevNatan.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}},"created_at":"2025-04-25T17:55:40.000Z","updated_at":"2025-05-02T19:03:39.000Z","dependencies_parsed_at":"2025-04-27T23:25:32.774Z","dependency_job_id":"bdd3f2e1-1913-433d-ba11-9ac767b7de56","html_url":"https://github.com/DevNatan/xclense","commit_stats":null,"previous_names":["devnatan/xclense"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DevNatan/xclense","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevNatan%2Fxclense","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevNatan%2Fxclense/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevNatan%2Fxclense/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevNatan%2Fxclense/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevNatan","download_url":"https://codeload.github.com/DevNatan/xclense/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevNatan%2Fxclense/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267436451,"owners_count":24086897,"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":"2025-07-27T02:00:11.917Z","response_time":82,"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-05-16T14:15:17.708Z","updated_at":"2025-07-27T22:33:14.558Z","avatar_url":"https://github.com/DevNatan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xclense\n\n`xclense` is a static analysis and diagnostics tool design to inspect Kotlin Multiplatform frameworks exported\nfor iOS (XCFrameworks) and identify unused or overexposed APIs in Swift consumer codebases.\n\n## Why `xclense`?\n\nKotlin Multiplatform allows for seamless code sharing across Android and iOS by exporting shared modules as XCFrameworks.\nHowever, the exported symbols often include unused or internal declarations—cluttering the SDK, increasing binary size, and exposing unnecessary surface area.\n\n`xclense` performs a **cross-language static analysis** between:\n- The Swift codebase (consumer of the XCFramework i.e. iOS App),\n- The Kotlin source metadata,\n- The generated XCFramework umbrella headers,\n\n...to determine what is actually used, and what can safely be trimmed or restricted (e.g., from `public` to `internal`).\n\n## Why lean bridges matter\n\nReducing your public API surface isn't just about binary size—it improves modularity, enhances security,\nand makes your application or SDK easier to test, reason about, and evolve. xclense helps keep your Kotlin ↔ Swift boundary clean, auditable, and intentional.\n\n## Roadmap\n\n- [ ] GitHub Actions plugin\n- [ ] Kotlin Native .def auto-generator with trimmed output\n- [ ] Visual symbol diff UI\n- [ ] Full Kotlin symbol inspection via .klib and konan metadata\n\n## Development Status\n\nxclense is under active development. We welcome contributors, ideas, and feedback from Kotlin Multiplatform\nand iOS communities!\n\n## License\n\nMIT License. © 2025-present, the xclense contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevnatan%2Fxclense","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevnatan%2Fxclense","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevnatan%2Fxclense/lists"}