Tomato is a family of community-developed, custom firmware for consumer-grade computer networkingrouters and gateways powered by Broadcom chipsets. The goal of the project is to provide users with an alternative to the firmware pre-installed on their equipment by the manufacturer, providing:
Additional features, making fuller use of the device's hardware
Enhanced security
More frequent updates
Ultimately, greater control over its configuration and behavior
With over a decade of free open-source development invested by hundreds of contributors since its inception, there have often been multiple forks actively supported at any given time, the unique goals and implementations of each further empowering users to have options and provide feedback on how the device operates.
History
Tomato was originally released by Jonathan Zarate in 2006, using the Linux kernel and drawing extensively on the code of HyperWRT. It was targeted at many popular routers of the time, most notably the older Linksys WRT54G series, Buffalo AirStation, Asus routers and Netgear WNR3500L. His final release of the original Tomato firmware came in June 2010, by which point its popularity had grown large enough that development and support continued through the user community, resulting in a series of releases by individual users or teams of them that continues to the present day. Fedor Kozhevnikov created a notable early mod he called TomatoUSB, which ceased development in November 2010. It was then forked by other developers and remains the nearest common ancestor to all of the forks with any recent activity. Arguably the project's largest recognition to date came when Tomato was chosen by Asus as the base used to build the firmware currently preinstalled on their entire line of home routers, ASUSWRT. As is often seen in projects founded on volunteer effort, the Tomato ecosystem slowly became more fragmented over time and thus more vulnerable to attrition. As of 2019 there is only a single extant fork under active development: FreshTomato.
Features
Several notable features have been part of Tomato long enough to be common to all forks, among them are:
* Access to almost the entirety of the features provided by the hardware
* Extensive use of Ajax to display only the settings that are germane to the device's current setup, reducing confusion and keeping related options near each other using fewer pages/tabs
* A CSS-based custom interface theming
* SVG-based graphical bandwidth monitoring, showing total network inbound/outbound activity and that of each connected device through pie charts and line graphs that update in real-time
A personal web server that uses the device's "always on, always connected" design to allow users to host their own websites from home for free
Access and bandwidth restriction configurable for each device or the network as a whole, providing control over the speed and amount of traffic available at any time to any device
Unrestricted access to the internal system logs and the ability to store them for easier troubleshooting and security audits
CLI access via the web-based interface, as well as via Telnet or SSH