CodeRunner Documentation

CodeRunner Introduction

CodeRunner is a multifaceted server application -- the primary focus is a configurable socket server, the secondary function is to execute Modern Pascal scripts per socket connection. The configurable socket server is based upon the world-class socket suite known as DXSock. DXSock Version 6.0 was only released to a company that provides front-end socket interfaces to all 3 credit bureaus, and LexisNexis - along with processing OFAC terrorist queries per every socket transaction. I developed both products, along with the constant development of Modern Pascal. DXSock is capable of easily handling 50,000 concurrent connections on a server. In the CodeRunner design, each socket is bound to an instance of Modern Pascal - allowing connections that run a script per connection. This means you can build practically any type of solution without the burden or focus on socket communications and threading. Instead, you focus on the functionality of the connection.

Building rock solid Servers

CodeRunner has been running a wide range of script-based servers since 2015 -- when we switched to using third-party VPS (Virtual Private Servers) instead of paying for gigabyte fiber into our office. The savings was outrageous, both dropping the monthly fiber bill, and being able to merge multiple server applications into a single small VPS footprint. For too long, we followed the industry standard of multiple servers in a rack, where you operated 2 or 3 servers as fail-over solutions. However, hardware has evolved over the last 2 decades while we have been developing Modern Pascal. In today's market, it is honestly cheaper to develop your own servers using CodeRunner and combining these solutions to operate on only one or two CodeRunner engines.

Improved debugging under the hood

CodeRunner executes the same Modern Pascal JIT compiler that the command-line tool does. However, CodeRunner is built with almost zero video output or capability to interact with a user at the console. So, we introduced debugging to log, where you can quickly glance at /var/log/coderunner log file to see which threads are executing which scripts, how long these scripts are running, along with any compile-time or run-time error messages.