#package-manager #cross-platform #aims #macos #architecture #linux-macos #cpu

bin+lib langenv

langenv aims to be a cross-platform package manager for Linux, macOS, and Windows

2 releases

0.0.2 May 24, 2021
0.0.1 May 19, 2021

#745 in Operating systems

Custom license

45KB
354 lines

langenv

langenv aims to be a cross-platform package manager for Linux, macOS, and Windows.

Please note that this project is currently a Work In Progress and isn't currently functional.

Goals

  • Releases
  • To support the following Operating Systems:
    • Linux
    • macOS
    • Windows
  • To support managing packages with the following scopes:
    • Project-space
    • User-space
    • System-space packages
  • To support the following CPU Architectures:
    • amd64 (aka. "x86-64")
    • arm64
  • For langenv to be a statically linked binary that can:
    • Install itself onto the system
    • Install & Manage packages
    • And do it all without any external package dependencies (work in a scratch docker container)

Current Limitations

  • Only manages pre-built static binaries (Dependency management can be very difficult to fix if done incorrectly. Until a solid plan is made, I'm avoiding the problem.)
  • Only installs the latest versions of the packages (The repo format & syntax is unstable. Until the repo system is stablized, I'm limiting the versions so that large changes can be refactored quickly.)
  • Only installs & manages packages in User-space

Inspiration

The following package managers are great projects with many cool features.

  • asdf: My favorite Project-space package manager for *nix environments.
  • homebrew: My favorite User-space package manager for macOS.
  • scoop: My favorite User-space package manager for Windows.
  • nix: Has a very cool build-system and dependency management system.

Dependencies

~12–26MB
~401K SLoC