Lisp Educational Network Simulator (LENS) provides a Common Lisp environment for network simulations. It includes a set of packages, classes and libraries to represent network elements and protocols. Simulations may be configured and run interactively in the :lens-user package which also includes a number of interfaces to assist in setting up simulations and analysing the results.

The architecture is based on that of the Georgia Tech Network Simulator (GTNetS) which was written in C++ and NS-2 written in C++ and Tcl, however, where possible, advantage has been taken of the features of Common Lisp to simplify and provide higher level abstractions. Typically the LISP version requires about a fifth or less of the amount of code to achieve the same results. Additionally Common Lisp provides an interactive environment with complete object introspection and access to the programming language itself making it easier to do explorative simulations and simulation development without the need of the complexity of mixing langages (as per NS2). In LENS the simulations are run in a separate thread to the normal Common Lisp read-eval loop so the user can probe or modify the simulation even while it is running.

It is hoped that LENS will be easier to develop for than other network simulators and will be more suitable as a tool for teaching network principles.

Homepage: http://willijar.github.io/LENS/

Source repository: https://github.com/willijar/LENS

License: GPL3

Topics: networking application