News for hackers. Stuff that matters.

Ask HN: How are online code runner/playgrounds made?

For example, https://play.crystal-lang.org/#/cr, https://play.rust-lang.org/, or https://executeprogram.com

I'm thinking there are two options. Either having some kind of <Language> to JS interpreter that runs the code in the browser, or, running the code in some kind of container on a server and returning the response to the client. In which case, how are the servers secured against potentially dangerous input?

( 3 comments | 3 points | on HN )
Re:Ask HN: How are online code runner/playgrounds made? by steveklabnik on Monday July 13, 2020 @12:34PM (#23822637)
https://github.com/integer32llc/rust-playground is the code for play.rust-lang.org
Re:Ask HN: How are online code runner/playgrounds made? by PaulHoule on Monday July 13, 2020 @09:55AM (#23820779)
I think many of them (esp. Hacker Rank) start up a container to run your program. Presumably these are configured to prevent access to the network, external files, etc.

The AWS Lambda console has a code editor/runner that looks a lot like what Hacker Rank has, but you are running on the real Lambda system which has some characteristics of VMs and containers.

Re:Ask HN: How are online code runner/playgrounds made? by verdverm on Monday July 13, 2020 @11:38AM (#23821896)
Golang uses a restricted remote container.

Curlang uses WebAssembly to be local to the browser. I see this becoming a trend.