Tcl has a library called "comm" [0] that lets you expose an interpreter over a socket and since everything in Tcl has a string representation, there's no need for a serialization/deserialization step.
[0] https://core.tcl-lang.org/tcllib/doc/trunk/embedded/md/tclli...