4 ms·
Yes so regardless of what language or where the language runs, we give you a container, inside that container we drop in a server that's responsible for most of
by amasad 6y ago
Yes so regardless of what language or where the language runs, we give you a container, inside that container we drop in a server that's responsible for most of the functionality including editing, collaboration, hosting, etc. A little about that here: https://blog.repl.it/collab https://blog.repl.it/collab
The IDE is built on top of a window-tiling manager abstraction we built in React.js: https://blog.repl.it/ide https://blog.repl.it/ide
Now, as for languages, most of them do run inside the container, which is built from our base image polygott (https://github.com/replit/polygott https://github.com/replit/polygott). However, a select-few are better suited to run on the client. We have a client-side jail called: replbox (https://github.com/replit/replbox https://github.com/replit/replbox). Basic, for example, runs on replbox because I wanted to graphics to be instant. For something like PyGame or LOVE frameworks we had to go with VNC streaming but that's not ideal for obvious network reasons.
There is a lot more to it -- it sometimes feels like building an entire city -- and you can find some more posts on our blog: https://blog.repl.it/ https://blog.repl.it/ (which incidentally is hosted on Repl.it).