{"id":44953226,"url":"https://github.com/licenselynx/licenselynx","last_synced_at":"2026-02-18T11:11:44.759Z","repository":{"id":282742146,"uuid":"947353143","full_name":"licenselynx/licenselynx","owner":"licenselynx","description":"Deterministically map license strings to their canonical identifiers","archived":false,"fork":false,"pushed_at":"2026-02-11T15:50:50.000Z","size":4838,"stargazers_count":14,"open_issues_count":8,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-02-11T22:18:24.213Z","etag":null,"topics":["deterministic","java","license-compliance","license-mapping","python","typescript"],"latest_commit_sha":null,"homepage":"https://licenselynx.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/licenselynx.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":"COPYRIGHT.txt","agents":null,"dco":null,"cla":null}},"created_at":"2025-03-12T14:55:07.000Z","updated_at":"2026-02-03T09:24:45.000Z","dependencies_parsed_at":"2025-12-11T12:00:27.448Z","dependency_job_id":null,"html_url":"https://github.com/licenselynx/licenselynx","commit_stats":null,"previous_names":["licenselynx/licenselynx"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/licenselynx/licenselynx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/licenselynx%2Flicenselynx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/licenselynx%2Flicenselynx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/licenselynx%2Flicenselynx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/licenselynx%2Flicenselynx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/licenselynx","download_url":"https://codeload.github.com/licenselynx/licenselynx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/licenselynx%2Flicenselynx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29576932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["deterministic","java","license-compliance","license-mapping","python","typescript"],"created_at":"2026-02-18T11:11:44.126Z","updated_at":"2026-02-18T11:11:44.749Z","avatar_url":"https://github.com/licenselynx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![total mappings](website/badges/total-mappings.svg)\n[![GitHub Tag](https://img.shields.io/github/v/tag/licenselynx/licenselynx)](https://github.com/licenselynx/licenselynx/releases/latest)\n[![license](https://img.shields.io/github/license/licenselynx/licenselynx)](LICENSE)\n\n![python coverage](website/badges/coverage-python.svg)\n![java coverage](website/badges/coverage-java.svg)\n![typescript coverage](website/badges/coverage-typescript.svg)\n![scripts coverage](website/badges/coverage-scripts.svg)\n\n[![python pipeline](https://github.com/licenselynx/licenselynx/actions/workflows/python.yaml/badge.svg)](https://github.com/licenselynx/licenselynx/actions/workflows/python.yaml)\n[![java pipeline](https://github.com/licenselynx/licenselynx/actions/workflows/java.yaml/badge.svg)](https://github.com/licenselynx/licenselynx/actions/workflows/java.yaml)\n[![typescript pipeline](https://github.com/licenselynx/licenselynx/actions/workflows/typescript.yaml/badge.svg)](https://github.com/licenselynx/licenselynx/actions/workflows/typescript.yaml)\n[![scripts pipeline](https://github.com/licenselynx/licenselynx/actions/workflows/scripts.yaml/badge.svg)](https://github.com/licenselynx/licenselynx/actions/workflows/scripts.yaml)\n[![data pipeline](https://github.com/licenselynx/licenselynx/actions/workflows/data.yaml/badge.svg)](https://github.com/licenselynx/licenselynx/actions/workflows/data.yaml)\n\n# LicenseLynx \n\n## Overview\n\nLicenseLynx is a project focused on deterministically map unknown or ambiguous license names and their canonical license names.\nAdditionally, we offer libraries for Python, Java, and TypeScript to streamline the process of mapping licenses to their canonical names,\ntypically represented by SPDX IDs.\n\n## Folder Structure\n\nThe folders **Java**, **Python**, and **TypeScript** are providing libraries to use in code.\nThe folder **scripts** contains several useful scripts to update, transform, and verify data.\nIn the folder **website** we host a static website to introduce the community to the LicenseLynx project.\n\n## Data structure\n\nIn folder **data** all licenses are stored in their own json-files.\nThe structure of a stored license looks like this:\n\n```json\n{\n    \"canonical\": {\n        \"id\": \"BSD-3-Clause\",\n        \"src\": \"spdx\"\n    },\n    \"aliases\": {\n        \"spdx\": [\n            \"BSD 3-Clause \\\"New\\\" or \\\"Revised\\\" License\"\n        ],\n        \"custom\": [\n            \"3-Clause BSD\",\n            \"3-Clause BSD License\",\n            \"EDL 1.0\",\n            \"Modified BSD License\",\n            \"new BSD\",\n            \"BSD 3-Clause Revised\"\n        ],\n        \"osi\": [\n            \"BSD-3\",\n            \"Revised BSD License\"\n        ],\n        \"scancodeLicensedb\": [\n            \"bsd-new\",\n            \"LicenseRef-scancode-libzip\"\n        ]\n    },\n    \"rejected\": [],\n    \"risky\": []\n}\n\n```\n\n| ID        | Description                                                                                          |\n|-----------|------------------------------------------------------------------------------------------------------|\n| canonical | JSON Object for canonical identifier `id` and the source `src` where this information comes from     |\n| aliases   | Dictionary of sources, where each source is list of aliases of license (e.g. \"spdx\", \"custom\", etc.) |\n| rejected  | List of rejected aliases                                                                             |\n| risky     | List of risky aliases                                                                                |\n\n## Data Quality\n\nWith LicenseLynx we aim to have a deterministic mean of license mappings.\nFor more details, head to our [website](https://licenselynx.org/data-quality) to find out more.\n\n## Contributing\n\nWe welcome contributions from the community to improve this project. If you'd like to contribute, please refer to\nour [Contribution Guidelines](https://licenselynx.org/contribution) for detailed instructions on how to get started.\n\n## License\n\nThis project is licensed under the [BSD 3-Clause \"New\" or \"Revised\" License](LICENSE) (SPDX-License-Identifier: BSD-3-Clause).\n\nCopyright (c) Siemens AG 2025 ALL RIGHTS RESERVED\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flicenselynx%2Flicenselynx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flicenselynx%2Flicenselynx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flicenselynx%2Flicenselynx/lists"}