Main Technologies Used

Python

Python it’s the main programming language used by the server side application (web admin, API, controller, workers).

In the past OpenWISP was built in Ruby On Rails, but we later switched to Python because it’s much more suited to networking and it has a wider pool of potential contributors.

Django

Django is one of the most popular web frameworks for Python language.

It is used extensively in our modules. Django allows rapid development and has a very rich ecosystem.

Ansible

We use Ansible to provide an automated procedure to deploy OpenWISP and to compile a custom OpenWRT image.

NetJSON

NetJSON is a data interchange format based on JSON designed to ease the development of software tools for computer networks.

OpenWRT

OpenWRT is an linux distribution designed for embedded systems, routers and networking in general.

It has a very skilled community and it is used as a base by many hardware vendors (Technicolor, Ubiquiti Networks, Linksys, Teltonika and many others).

Lua

Lua is a lightweight, multi-paradigm programming language designed primarily for embedded systems and clients.

Lua is cross-platform, since the interpreter is written in ANSI C, and has a relatively simple C API.

It is the official scripting language of OpenWRT.