populus icon indicating copy to clipboard operation
populus copied to clipboard

Proposal: Vyper versions supported over HTTP API

Open fubuloubu opened this issue 7 years ago • 2 comments

What was wrong?

The biggest problem with Vyper is that it's Python, and arbitrary/multiple version handling in Python is a hard thing to handle. It might just be better to delegate to dedicated servers that compile vyper programs using specific versions of the compiler. Access to these could be provided over an HTTP API (that's programmable), with an option to use a local version as well.

Also, with snapcraft/docker containerization, we may be able to support local versioning here too.

Conversation snippet...

@pipermerriam An open source hostable server which exposed an API for compilation of vyper code would be pretty cool. There are of course security concerns to be considered, but I think it would a valuable tool (especially if it had first class support for multiple vyper versions so that it could be used to do things like verification of deployed instances.

@fubuloubu Hmm, maybe that is the solution to online integration: a JS "compiler" that just sends everything to Vyper instances on AWS.

@pipermerriam Well, ideally, something like populus could delegate compilation via HTTP requests to this API so I'd love to have that use case supported

Cute Animal Picture

chortle pug

fubuloubu avatar Aug 27 '18 21:08 fubuloubu

Alternate idea might be something that does something similar to tox and manage independent virtualenvs for each installed vyper version. The outer vyper CLI would act as a transparent shell, delegating all execution to subprocess calls to the installed versions embedded in virtualenvs.

Think of it like pyenv but for vyper.

$ vyperenv install 1.2.3
...

pipermerriam avatar Aug 27 '18 22:08 pipermerriam

LGTM @jacqueswww, what do you think?

fubuloubu avatar Aug 28 '18 01:08 fubuloubu