Updates from the Repl.it team about the product

← Back to all posts
Announcing Universal Package Manager
amasad (1495)

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.

Commentshotnewtop
wg4568 (33)

How about the option to make REPLS their own packages? And then be able to install them from the package manager.

amasad (1495)

@wg4568 that's a good idea. People have suggested in the past. Will do.

AriAri (1)

@wg4568 Good idea. Love it.

schout6 (5)

It'd be great if I could use Wolfram Programming language & Wolfram Alpha.

AbdUl3 (2)

hi, what's the difference between Js And JavaScript

davidpython3 (125)

@AbdUl3 There is no difference. Js is an abbr for JavaScript. Is like Hyper Text Markup Language is actually HTML. There is no difference. Is just abbr.

Gem1n1531 (1)

yall should work on an offline program for repl.it. I hate Having to go to a website and not be able to see my programs in its full offline glory

micahlt (1)

Please add Ruby as one of the languages that supports this! It is an awesome uprising code that I know needs to be able to use packages!

xiaodaigh (0)

Julia would be great! It's on Hackerrank

TylerCooper (2)

Any reason why pyames does not work specifically windows?

amasad (1495)

@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.

CODERS_SPIRIT (0)

Coding on repl is now going to be much more fun!

arcsector (0)

Out of curiosity, why did I need to reverify my email for this?

angelo_the3rd (0)

Oh man, this is so awesome.

VaibhavSingh4 (0)

Is it possible to install tensorflow-gpu and keras in python to and use them ?

Foxxo (1)

@VaibhavSingh4 why would you want to? there's no gpu on these systems