{"id":21907167,"url":"https://github.com/blooym/nael","last_synced_at":"2025-04-16T01:11:19.132Z","repository":{"id":196057924,"uuid":"693922681","full_name":"Blooym/nael","owner":"Blooym","description":"A Dalamud version manager that makes working with different releases simple. Inspired by nvm.","archived":false,"fork":false,"pushed_at":"2025-04-08T18:39:58.000Z","size":281,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T19:47:16.624Z","etag":null,"topics":["cli","dalamud","version-manager"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/nael","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/Blooym.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["Blooym"],"ko_fi":"Blooym"}},"created_at":"2023-09-20T01:39:59.000Z","updated_at":"2025-04-08T18:40:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"f288dea0-4f74-4f08-8b12-daddb7bb87cd","html_url":"https://github.com/Blooym/nael","commit_stats":null,"previous_names":["blooym/nael"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blooym%2Fnael","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blooym%2Fnael/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blooym%2Fnael/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blooym%2Fnael/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blooym","download_url":"https://codeload.github.com/Blooym/nael/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247918929,"owners_count":21018043,"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","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":["cli","dalamud","version-manager"],"created_at":"2024-11-28T16:59:33.522Z","updated_at":"2025-04-16T01:11:19.116Z","avatar_url":"https://github.com/Blooym.png","language":"Rust","funding_links":["https://github.com/sponsors/Blooym","https://ko-fi.com/Blooym"],"categories":[],"sub_categories":[],"readme":"# Nael\n\n\u003e [!WARNING]  \n\u003e Nael is not yet considered stable and is subject to breaking changes. If you're using it in CI or scripts you should pin to a specific version to avoid breakage. This includes both the `nael_core` crate and the `nael` binary.\n\n*You're looking at the README for `nael` the command-line tool. If you're looking for the`nael_core` library, please go [here](./crates/core/).*\n\nA [Dalamud](https://github.com/goatcorp/Dalamud) version manager that makes working with different releases (branches) of Dalamud simple, inspired by [nvm](https://github.com/nvm-sh/nvm).\n\n## Features\n\n- **Quick installs and updates** from release distribution sources.\n- **Instant switching** between multiple locally-installed branches.\n- **Update checks** from a remote source to only run an update when out of date.\n- **Compliant** with all major operating system storage standards.\n- **No configuration** files, everything is completely filesystem based.\n- **Implemented safely** with a project-agnostic crate.\n- **Cross-platform** and able to run on most major operating systems.\n\nCheck the [examples](#examples) section to see some examples of usage. \n\n## Installing\n\n\u003e [!IMPORTANT]  \n\u003e **WINDOWS USERS** will have to enable [Developer Mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging) in order to use nael outside of an administrator context due to Windows preventing the creation of symlinks without it enabled.\n\n### Cargo (best platform support; recommended)\n\nThe best way to install is by using Cargo to fetch it from crates.io and compile it for your machine. For some architectures (e.g. aarch64) this is currently the only way to install nael.\n\nOnce you have [Cargo setup locally](https://www.rust-lang.org/tools/install), simply run the following to download and compile for your system:\n\n```\ncargo install nael\n```\n\n### Prebuilt binaries\n\nPre-built binaries are available for all targets that `cargo-dist` can support and are built using the latest versions of Rust. To download one for your system, go to the [GitHub releases page](https://github.com/Blooym/nael/releases/latest) and download the right release asset for your architecture and operating system add place it somewhere in your system `$PATH`.\n\n### Other package managers\n\nNael is not available from any package manager at this time.\n\n## Setting up DALAMUD_HOME with nael\n\n\u003e [!NOTE]  \n\u003e Testing is required here. PRs are welcome to help improve this section!\n\n`DALAMUD_HOME` is the [community-accepted](https://github.com/goatcorp/SamplePlugin/blob/c1dacec1e1f56ac798a9ffd5703f6101b8aa054e/SamplePlugin/Dalamud.Plugin.Bootstrap.targets) environment variable for setting a custom Dalamud path.\n\nSetting an environment variable depends on the shell you're using. For most POSIX-compliant shells you should be able to just add the following to your shell configuration:\n\n```sh\nexport DALAMUD_HOME=$(nael symlink-path)\n```\n\nIf you cannot, or do not want to, call nael to get the path when setting the environment variable you can run `nael symlink-path` and place the command output in your environment configuration instead. The symlink returned from this command will always point to the active version if one is set *(note: if no active version is set, this symlink will not exist or will lead to a dead path.)*.\n\n### Integrating with MSBuild\n\nAdd the following to your `.csproj` or `.targets` file, replacing any existing definitions of `DalamudLibPath` property.\n\n```xml\n\u003cPropertyGroup\u003e\n  \u003cDalamudLibPath Condition=\"$([MSBuild]::IsOSPlatform('Windows'))\"\u003e$(appdata)\\XIVLauncher\\addon\\Hooks\\dev\\\u003c/DalamudLibPath\u003e\n  \u003cDalamudLibPath Condition=\"$([MSBuild]::IsOSPlatform('Linux'))\"\u003e$(HOME)/.xlcore/dalamud/Hooks/dev/\u003c/DalamudLibPath\u003e\n  \u003cDalamudLibPath Condition=\"$([MSBuild]::IsOSPlatform('OSX'))\"\u003e$(HOME)/Library/Application Support/XIV on Mac/dalamud/Hooks/dev/\u003c/DalamudLibPath\u003e\n  \u003cDalamudLibPath Condition=\"$(DALAMUD_HOME) != ''\"\u003e$(DALAMUD_HOME)/\u003c/DalamudLibPath\u003e\n\u003c/PropertyGroup\u003e\n```\n\nYou will now be able to use the `DALAMUD_HOME` environment variable to override the default DalamudLibPath and use nael to manage your Dalamud version instead - if `DALAMUD_HOME` isn't set the per-platform paths will be used instead.\n\n## Examples\n\n**Show all command line options:**\n```\n\u003e nael help\nA Dalamud version manager that makes working with different releases of Dalamud simple.\n\nUsage: nael \u003cCOMMAND\u003e\n\nCommands:\n  install       Install a Dalamud release from the specified branch\n  update        Update a local branch to the latest version\n  remove        Remove a branch from this system\n  list          List all installed branches\n  use           Switch the currently active branch\n  active        Get information about the active branch\n  symlink-path  Get the path to the symlink that always points to the active branch\n  info          Show information about the specified branch\n  help          Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n**Installing a Dalamud release from the `release` branch:**\n```\n\u003e nael install release\nSuccessfully installed branch 'release' with version '9.0.0.17'.\n```\n\n**Updating the `release` branch**\n```\n\u003e nael update release\nBranch is already up to date.\n```\n\n**Setting the active branch to `release`:**\n```\n\u003e nael use release\nSuccessfully set branch 'release' as active.\n```\n\n**Listing all installed branches**\n```\n\u003e nael list\nInstalled branches:\n - stg\n - v9\n * release\n```\n\n**Getting information about the active version:**\n```\n\u003e nael active\nrelease\n\u003e nael active --format path\n/home/example/.local/share/nael/dalamud-branches/release\n```\n\n**Getting local information about the `release` branch:**   \nOptionally, see remote information instead with the `--remote` flag.\n```\n\u003e nael info release\nLocal version information for branch release:\n- Version: 9.0.0.17\n- Git Sha: unknown\n- Revision: unknown\n- Key: N/A\n- Supported GameVer: 2023.03.24.0000.0000\n- Runtime version: 7.0.0\n- Runtime required: true\n```\n\n## License\n\nThis project is dual-licensed under both the MIT License and the Apache License (Version 2.0). See [LICENSE-MIT](./LICENSE-MIT) and [LICENSE-APACHE](./LICENSE-APACHE) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblooym%2Fnael","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblooym%2Fnael","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblooym%2Fnael/lists"}