69
Announcing Universal Package Manager
amasad (1225)

Open-source has revolutionized software development -- it wouldn't be an overstatement to say that it's been the most significant productivity win for developers in the last decade or so. At Repl.it, our goal is to make programming more accessible and what better way to do that than make available to programmers the entirety of open-source packages available at their fingertips.

Today we're excited to announce our Universal Package Manager -- the Repl.it package manager that will grow to support every language on our platform. Where traditionally you have to learn and use different package managers for different languages, now you can install any package in any language that we support behind the same interface. We're
now starting with JavaScript, Python, HTML/CSS/JS, and the web frameworks that we support.

We've had basic support for automatic package detection and installation for a while now, but what changed is that we support search and spec files (package.json, gemfile, requirements.txt, etc) across the board. Furthermore, where we used to write custom code for every language that we support, now we
merely add fields to a config file.

This was made possible by creating a common package manager runner abstractions. Adding package manager support for a language is as easy as adding a couple of fields in a JSON config:

  "dependencies": {
    "env": {
      "PYTHONPATH": "/run_dir/customize",
      "MATPLOTLIBRC": "/run_dir/"
    },
    "installDir": ".site-packages",
    "findCommand": [
      "python",
      "/run_dir/findreqs.py",
      "--ignore",
      "/home/runner/.site-packages"
    ],
    "installCommand": [
      "pip",
      "install",
      "--target=/home/runner/.site-packages"
    ],
    "specFile": "requirements.txt",

In addition to this we have a more ambitious project in the works to build the same package manager that works across all languages (with the same semantics). You should come work with us.

Signup and start coding.

You are viewing a single comment. View All
1
amasad (1225)

@TylerCooper pygames connect directly to your screen and we have no way of doing that currently being in the browser.

However, we have plans to support GUI in the future. It just requires a lot of work.