All Projects → dom96 → Choosenim

dom96 / Choosenim

Licence: bsd-3-clause
Tool for easily installing and managing multiple versions of the Nim programming language.

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to Choosenim

Jill
Command line installer of the Julia Language.
Stars: ✭ 144 (-57.4%)
Mutual labels:  installer, hacktoberfest
Nvquicksite
nvQuickSite is a desktop installation app for DNN, the world's most popular ASP.NET-based CMS. This app allows you to easily install DNN onto any environment that meets the minimum system requirements for DNN to be installed.
Stars: ✭ 36 (-89.35%)
Mutual labels:  installer, hacktoberfest
Calamares
Distribution-independent installer framework
Stars: ✭ 654 (+93.49%)
Mutual labels:  installer, hacktoberfest
Djangocms Installer
Console wizard to bootstrap django CMS projects
Stars: ✭ 148 (-56.21%)
Mutual labels:  installer, hacktoberfest
Kotlin Telegram Bot
🤖 A wrapper for the Telegram Bot API written in Kotlin
Stars: ✭ 337 (-0.3%)
Mutual labels:  hacktoberfest
Livecode
LiveCode cross-platform development environment (engine)
Stars: ✭ 336 (-0.59%)
Mutual labels:  hacktoberfest
Admin
A beautiful and fully-featured administration interface builder for hypermedia APIs
Stars: ✭ 335 (-0.89%)
Mutual labels:  hacktoberfest
Grouparoo
🦘 The Grouparoo Monorepo - open source customer data sync framework
Stars: ✭ 334 (-1.18%)
Mutual labels:  hacktoberfest
Ruby rbenv
Development repository for the ruby_rbenv cookbook
Stars: ✭ 339 (+0.3%)
Mutual labels:  hacktoberfest
Jhipster Kotlin
Kotlin based JHipster
Stars: ✭ 339 (+0.3%)
Mutual labels:  hacktoberfest
Phpmussel
PHP-based anti-virus anti-trojan anti-malware solution.
Stars: ✭ 337 (-0.3%)
Mutual labels:  hacktoberfest
Trefle Api
🍀 Trefle is a botanical JSON REST API for plants species, allowing you to search and query over all the registered species, and build the next gardening apps and farming robots.
Stars: ✭ 335 (-0.89%)
Mutual labels:  hacktoberfest
Youtube Api
📹 A Node.JS module, which provides an object oriented wrapper for the YouTube v3 API.
Stars: ✭ 338 (+0%)
Mutual labels:  hacktoberfest
Netcdf C
Official GitHub repository for netCDF-C libraries and utilities.
Stars: ✭ 336 (-0.59%)
Mutual labels:  hacktoberfest
Isahc
The practical HTTP client that is fun to use.
Stars: ✭ 338 (+0%)
Mutual labels:  hacktoberfest
Pact Python
Python version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.
Stars: ✭ 335 (-0.89%)
Mutual labels:  hacktoberfest
Hexagon
Hexagon is a microservices toolkit written in Kotlin. Its purpose is to ease the building of services (Web applications, APIs or queue consumers) that run inside a cloud platform.
Stars: ✭ 336 (-0.59%)
Mutual labels:  hacktoberfest
Console Feed
Captures console.log's into a React Component 🔥
Stars: ✭ 337 (-0.3%)
Mutual labels:  hacktoberfest
Parse Dashboard
A dashboard for managing your Parse Server Apps
Stars: ✭ 3,534 (+945.56%)
Mutual labels:  hacktoberfest
Jotai
👻 Primitive and flexible state management for React
Stars: ✭ 6,453 (+1809.17%)
Mutual labels:  hacktoberfest

choosenim

choosenim installs the Nim programming language from official downloads and sources, enabling you to easily switch between stable and development compilers.

The aim of this tool is two-fold:

  • Provide an easy way to install the Nim compiler and tools.
  • Manage multiple Nim installations and allow them to be selected on-demand.

Typical usage

$ choosenim stable
  Installed component 'nim'
  Installed component 'nimble'
  Installed component 'nimgrep'
  Installed component 'nimpretty'
  Installed component 'nimsuggest'
  Installed component 'testament'
   Switched to Nim 1.0.0
$ nim -v
Nim Compiler Version 1.0.0 [Linux: amd64]

Installation

Windows

Download the latest Windows version from the releases page (the .zip file, for example here is v0.7.4).

Extract the zip archive and run the runme.bat script. Follow any on screen prompts and enjoy your new Nim and choosenim installation.


There is also a third-party project to provide an installer for choosenim, you can find it here (note that this isn't vetted by the Nim team so you do so at your own risk).

Unix

curl https://nim-lang.org/choosenim/init.sh -sSf | sh
wget -qO - https://nim-lang.org/choosenim/init.sh | sh

Optional: You can specify the initial version you would like the init.sh script to install by specifying the CHOOSENIM_CHOOSE_VERSION environment variable.

How choosenim works

Similar to the likes of rustup and pyenv, choosenim is a toolchain multiplexer. It installs and manages multiple Nim toolchains and presents them all through a single set of tools installed in ~/.nimble/bin.

The nim, nimble and other tools installed in ~/.nimble/bin are proxies that delegate to the real toolchain. choosenim then allows you to change the active toolchain by reconfiguring the behaviour of the proxies.

The toolchains themselves are installed into ~/.choosenim/toolchains. For example running nim will execute the proxy in ~/.nimble/bin/nim, which in turn will run the compiler in ~/.choosenim/toolchains/nim-1.0.0/bin/nim, assuming that 1.0.0 was selected.

How toolchains are installed

choosenim downloads and installs the official release binaries on Windows and Linux. On other platforms, the official source release is downloaded and built. This operation is only performed once when a new version is selected.

As official binaries are made available for more platforms, choosenim will install them accordingly.

Dependencies

Windows Linux macOS (*)
C compiler Downloaded automatically gcc/clang gcc/clang
OpenSSL >= 1.0.2k >= 1.0.2k N/A
curl N/A N/A Any recent version
wget N/A >= 1.20.1 >= 1.20.1

* Many macOS dependencies should already be installed. You may need to install a C compiler however. More information on dependencies is available here.

OpenSSL version can be checked by executing openssl version.

Git is required when installing release versions on platforms other than Windows and Linux, or when installing #HEAD or a specific commit of Nim.

Usage

> choosenim -h
choosenim: The Nim toolchain installer.

Choose a job. Choose a mortgage. Choose life. Choose Nim.

Usage:
  choosenim <version/path/channel>

Example:
  choosenim 0.16.0
    Installs (if necessary) and selects version 0.16.0 of Nim.
  choosenim stable
    Installs (if necessary) Nim from the stable channel (latest stable release)
    and then selects it.
  choosenim #head
    Installs (if necessary) and selects the latest current commit of Nim.
    Warning: Your shell may need quotes around `#head`: choosenim "#head".
  choosenim ~/projects/nim
    Selects the specified Nim installation.
  choosenim update stable
    Updates the version installed on the stable release channel.
  choosenim versions [--installed]
    Lists the available versions of Nim that choosenim has access to.

Channels:
  stable
    Describes the latest stable release of Nim.
  devel
    Describes the latest development (or nightly) release of Nim taken from
    the devel branch.

Commands:
  update    <version/channel>    Installs the latest release of the specified
                                 version or channel.
  show                           Displays the selected version and channel.
  update    self                 Updates choosenim itself.
  versions  [--installed]        Lists available versions of Nim, passing
                                 `--installed` only displays versions that
                                 are installed locally (no network requests).

Options:
  -h --help             Show this output.
  -y --yes              Agree to every question.
  --version             Show version.
  --verbose             Show low (and higher) priority output.
  --debug               Show debug (and higher) priority output.
  --noColor             Don't colorise output.

  --choosenimDir:<dir>  Specify the directory where toolchains should be
                        installed. Default: ~/.choosenim.
  --nimbleDir:<dir>     Specify the Nimble directory where binaries will be
                        placed. Default: ~/.nimble.
  --firstInstall        Used by install script.

Analytics

Check out the analytics document for details.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].