Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

play.rust-lang.org #4064

Closed
ghost opened this issue Nov 29, 2012 · 6 comments
Closed

play.rust-lang.org #4064

ghost opened this issue Nov 29, 2012 · 6 comments

Comments

@ghost
Copy link

ghost commented Nov 29, 2012

Please enable compilation and running of trivial Rust programs online at play.rust-lang.org, similar to http://play.golang.org.

Alternatively, support Rust at http://ideone.com.

@bstrie
Copy link
Contributor

bstrie commented Nov 29, 2012

The ideal way to do this would probably be Issue #2235, though that's rather involved.

I poked around on ideone.com for a bit and didn't see any mention of how to add new languages.

I've looked into running an ideone-ish server for Rust in the past, possibly by making use of the basic features of Geordi (http://www.eelis.net/geordi/ and https://github.com/Eelis/geordi/).

@amuxtux
Copy link

amuxtux commented Nov 29, 2012

here is a experimental web based playground based on node.js. However I dont know how to apply file system + network access limitation. If these restrictions can be added I may be able to deploy on heroku or some other node hosting service.

https://github.com/amuxtux/RustNode

@bstrie
Copy link
Contributor

bstrie commented Nov 29, 2012

@amuxtux Geordi does syscall limitation, if you'd like a basic reference:

https://github.com/Eelis/geordi/blob/master/src/EvalCxx.hsc#L312

@graydon
Copy link
Contributor

graydon commented May 15, 2013

Note that rusti on IRC is a reasonably well-contained evaluator-bot presently, and might be adaptable to this purpose.

@thestinger
Copy link
Contributor

rusti (the bot) can definitely be adapted to a web-based evaluator. It's essentially just a Linux root used as a container (isolated process/network namespace). It drops capabilities and restricts device/resource usage with the container's cgroup and uses a whitelist (admittedly an unnecessarily long one atm) of syscalls.

@thestinger
Copy link
Contributor

I've implemented this, it's just a matter of making the frontend web interface and deploying it on rust-lang.org in some form.

Closing in favour of #6916.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants