An online code compiler emulates the terminal on the web allowing you to type terminal commands, your code etc. and compile them there and then as you’d normally do on your computer. Basically, there’s a terminal backend on the virtual machine/container that exposes the terminal on the web using one of the several libraries. Inherently, both sides communicate using websocket. The traditional model of web communication does not work in this situation since you need something that allows two-way interactive communication (mostly, to handle the standard input — ‘stdin’).