{"id":23861629,"url":"https://github.com/megatonhammer/linkle","last_synced_at":"2025-07-22T08:05:06.282Z","repository":{"id":47821477,"uuid":"131317562","full_name":"MegatonHammer/linkle","owner":"MegatonHammer","description":"The legendary hero that can create various Nintendo Switch formats from her rusty crossbows","archived":false,"fork":false,"pushed_at":"2023-01-09T15:05:54.000Z","size":273,"stargazers_count":78,"open_issues_count":22,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-15T20:50:59.476Z","etag":null,"topics":["homebrew","nintendo","nintendo-switch","rust","switch","tool"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/MegatonHammer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-27T15:59:55.000Z","updated_at":"2025-04-19T10:20:18.000Z","dependencies_parsed_at":"2023-02-08T12:31:59.268Z","dependency_job_id":null,"html_url":"https://github.com/MegatonHammer/linkle","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/MegatonHammer/linkle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegatonHammer%2Flinkle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegatonHammer%2Flinkle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegatonHammer%2Flinkle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegatonHammer%2Flinkle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MegatonHammer","download_url":"https://codeload.github.com/MegatonHammer/linkle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegatonHammer%2Flinkle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266455019,"owners_count":23931349,"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-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["homebrew","nintendo","nintendo-switch","rust","switch","tool"],"created_at":"2025-01-03T06:56:23.590Z","updated_at":"2025-07-22T08:05:06.262Z","avatar_url":"https://github.com/MegatonHammer.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/MegatonHammer/linkle/master/LICENSE-MIT)\n[![Apache 2 license](https://img.shields.io/badge/license-Apache-blue.svg)](https://raw.githubusercontent.com/MegatonHammer/linkle/master/LICENSE-APACHE)\n[![Discord](https://img.shields.io/discord/439418034130780182.svg)]( https://discord.gg/MZJbNZY)\n\n# Introduction\n\nThis program permits to convert or create various formats used on the Nintendo Switch.\nFor now, it only supports the creation of PFS0/NSP and 64 bits NRO/NSO. It can also\nbe used with cargo through `cargo nro` to simplify the build process of Megaton-Hammer\nhomebrew.\n\n# Installation\n\n## Source Installation\n\nAssuming you have `cargo` installed, `cargo install --features=binaries linkle`\nwill install `linkle` and the `cargo nro` subcommand.\n\n## Binary Installation\n\nAlternatively, you can download the `linkle` binary for Windows, MacOS and Linux\nARM64 in the [Github Releases](https://github.com/MegatonHammer/linkle/releases).\n\n# Usage\n\nCreating a NRO file:\n\n    linkle nro input.elf output.nro\n\nCreating a NSO file:\n\n    linkle nso input.elf output.nso\n\nCreating a PFS0/NSP file:\n\n    linkle pfs0 input_directory output.pfs0\n\nCreating a NACP file:\n\n    linkle ncap input.json output.nacp\n\nCreating a RomFs file:\n\n    linkle romfs input_directory output.romfs\n\nCompiling and creating an NRO file (requires xargo, use `cargo install xargo` to install):\n\n    cargo nro\n\n# Cargo.toml metadata format\n\nWhen compiling a project with `cargo nro`, a special `[package.metadata.linkle.BINARY_NAME]` key is\nused to allow customizing the build. This is an example Cargo.toml:\n\n```\n[package]\nname = \"link\"\nversion = \"0.1.0\"\nauthors = [\"linkle\"]\n\n[package.metadata.linkle.megaton-example]\nromfs = \"res/\"\nicon = \"icon.jpeg\"\ntitleid = \"0100000000819\"\n\n[package.metadata.linkle.megaton-example.nacp]\nname = \"Link\"\n\n[package.metadata.linkle.megaton-example.nacp.lang.ja]\n\"name\": \"リンク\",\n\"author\": \"リンクル\"\n```\n\nAll paths are relative to the project root (where the Cargo.toml file is located).\n\nEvery field has a sane default:\n\n| Field             | Description                                      | Default value       |\n| ----------------- |:------------------------------------------------:| -------------------:|\n| romfs             | The application romfs directory.                 | res/                |\n| icon              | The application icon.                            | icon.jpg            |\n| title_id          | The application title id.                        | 0000000000000000    |\n\nThe `[package.metadata.linkle.BINARY_NAME.nacp]` key follows the [NACP input format](#nacp-input-format)\n\n# NACP input format\n\nThis is an example of a compatible JSON:\n\n```json\n{\n    \"name\": \"Link\",\n    \"author\": \"Linkle\",\n    \"version\": \"1.0.0\",\n    \"title_id\": \"0400000000020000\",\n    \"lang\": {\n        \"ja\": {\n            \"name\": \"リンク\",\n            \"author\": \"リンクル\"\n        }\n    }\n}\n```\n\n## Fields\n\nNOTE: Every fields are optional\n\n| Field             | Description                                      | Default value       |\n| ----------------- |:------------------------------------------------:| -------------------:|\n| name              | The application name.                            | Unknown Application |\n| author            | The application author.                          | Unknown Author      |\n| version           | The application version.                         | 1.0.0               |\n| title_id          | The application title id.                        | 0000000000000000    |\n| dlc_base_title_id | The base id of all the title DLC.                | title_id + 0x1000   |\n| lang (object)     | Different name/author depending of the language  | use name and author |\n\n| Supported Languages|\n|:------------------:|\n| en-US              |\n| en-GB              |\n| ja                 |\n| fr                 |\n| de                 |\n| es-419             |\n| es                 |\n| it                 |\n| nl                 |\n| fr-CA              |\n| pt                 |\n| ru                 |\n| ko                 |\n| zh-TW              |\n| zh-CN              |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegatonhammer%2Flinkle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegatonhammer%2Flinkle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegatonhammer%2Flinkle/lists"}