PGRouting
PGRouting is an open-source routing library that extends PostgreSQL or PostGIS geospatial database to provide a geospatial routing solution. Using the database routing method has its own benefits. Clients can modify data and attributes from their PCs or mobile devices by using PI/pgSQL, ODBC, or QGIS. The changes done in data are reflected instantaneously in the routing engine without pre-calculation. You can set the cost parameters through a table with predefined range vs. price parameters, and the SQL will calculate those values.
PGRouting library consists of features including All Pairs Shortest Path, i.e., Johnson’s Algorithm, All Pairs Shortest Path, i.e., Floyd-Warshall Algorithm, Shortest Path A*, Bi-Directional Dijkstra Shortest Path, Bi-Directional A* Shortest Path, Shortest Path Dijkstra, Driving Distance, K-Shortest Path, Multiple Alternative Paths, K- Dijkstra, One to Many Shortest Path, Traveling Sales Person, and TRSP (Turn Restriction Shortest Path).
PGRouting Alternatives
#1 OSRM
OSRM (Open Source Routing Machine) is a routing engine written in C++ for connecting the shortest path in road networks. The tool combines complex routing algorithms with open-source road network data of the OpenStreetMap project. You can use the speedup technique to decrease the time it takes to make the shortest path computation on a continental-sized network. The OSRM can compute and output the shortest path between an origin and destination within milliseconds, while pure computation takes relatively less time.
OSRM’s Match Service matches given GPS points to the road network in the most efficient way. Other features that you can modify are Intersection Object, Lane Object, Waypoint Object, RouteStep Object, annotation Object, Tile Service, and Trip Service. All in all, the program code is available for developers to spice up their requirements and make a consumer-level routing program for users.
#2 OPNsense
OPNsense is an open-source routing and firewall software based on FreeBSD OS. State-of-the-art IPv4 and IOPv6 firewall show live view on blocked or passed traffic. Multiple WAN support makes it capable of load balancing and failover support. It is an integrated built-in VPN including IPsec, OpenVPN (with support for Tinc), and WireGuard VPN. One of the highlighting features is if you cannot afford downtime, you can use its automatic hardware failover with state synchronization that is using a common address redundancy protocol for getting the highest possible availability.
OPNsense is equipped with intrusion prevention to get rid of CNC bots and Trojans. 2-factor authentication is also supported for both users and developers. The program is equipped with web proxies, access control, and support for external blacklists to filter unwanted or reported traffic. DNS blacklisting feature is also available in the interface. Other features are Multilingual support, Web application filtering, Captive Portal, Net flow Monitoring, Rest API, and much more.
#3 FRRouting
FRRouting is an IP routing protocol suite for Unix and Linux OS, including protocol daemons such as LDP, IS-IS, RIP, OSPF, BGP, and PIM. The program seamlessly integrates with the native Linux/Unix IP networking stacks, which makes it a candidate for a wide range of use cases such as advertising network services, connecting hosts/containers, VMs to the network, Internet Peering, LAN switching & routing, and internet access routers. FRRouting installs routing decisions into Kernel OS that allows the stack to make the relative changes.
It supports the full range of L2 and L3 configurations, including addresses, static routes, router advertisements, etc. Unlike other routing services, FRRouting comes with a suite of daemon tools that work together to build a routing table. The architecture of this program is made for high resilience as a crash or error will not affect other protocols. Moreover, every daemon implements a plugin system that allows new functionality to be added easily.
#4 VyOS
VyOS is an open-source routing software that allows you to use it as a firewall platform or router system for cloud deployments. It supports IPv4, IPv6, BGP, OSPF v2 & v3, RIP, RIPng, and policy-based routing. Built-in VPN includes IPsec, VTI, L2TPv3, VXLAN, L2TP/IPsec & PPTP servers, OpenVPN in client, tunnel interfaces (GRE, IPIP, SIT), server, or site-to-site mode, WireGuard. The tool allows stateful firewalls, zone-based firewalls, and all types of destination NAT and source.
Supported network services are HCP and DHCPv6 server and relay, IPv6 RA, DNS forwarding, TFTP server, web proxy, PPPoE access concentrator, NetFlow/sFlow sensor, QoS. Built-in archiving and versioning make other external configuration backup tools redundant. VyOS combines Linux OS with other networking tools and provides you a complete management package with CLI support in the style of hardware routers. Additionally, it can run on multiple virtual machines as well as on the cloud.
#5 Vyatta
Vyatta is a software-based virtual router that includes routing services as well as firewall and VPS services for internet protocols, including IPv4 and IPv6. The program is a specialized Debian-based Unix distribution with Quagga and Open VPN networking service. Vyatta can also be used on virtual machines and provides functionality for many virtualization and cloud computing services such as VMware, Rackspace, KVM, Amazon EC2, and many others.
Vyatta is designed to convert 32-bit hardware into a commercial-level router/firewall. The tool slows seamless integration with commonly used interfaces, management protocols, and industry-standard routing protocols. All these features are configurable with a graphical user interface or command-line interface.
#6 Quagga Routing
Quagga Routing is a routing software suite that provides an implementation of firewalls including OSPFv2 (Open Shortest Path First), RIP v1 (Routing Information Protocol), OSPFv3, BGP-4 (Border Gateway Protocol), and RIPng for Linux, FreeBSD, Solaris, and NetBSD. The algorithm is implemented with core daemon tools and zebra that acts as an abstraction layer underneath the Unix kernel. The Zserv clients normally implement a routing protocol and communicate routing updates to zebra & daemon.
#7 Open Route Service
Open Route Service is a routing software for cars, pedestrians, wheelchairs, and bicycles. The data is based on Open Geodata and Open Standards data. The Direction Service estimates travel routes and navigation info according to the criteria. The Pois Service lets you access an online library to find the exact location, specific area, nearest place, or specific product. The Isochrones Service estimates a polygon that represents an area that is reachable within a specific time distance based on a street network in a given location.
A Geocoder lets you transform a description of location like name, postal code ad street address into a normal description of location with geometry. You can set the polygons on the map to avoid subsequent routing. The elevation feature lets you transform your 2D map into an elevated view with height measurements. Open Route Service planning tools include Classic maps client, disaster map client, and new VueJs client.
#8 FreeRouting
FreeRouting is a routing software for PCB (Printed Circuit Boards) that works with various CAD software such as Layout Editor, Eagle, KiCad. The tool includes three modes for routing. One is 90 degrees, free angel, and 45 degrees. It uses Gradle as a build system compatible with NetBeans, CLI, Eclipse, IntelliJ, and much more. The interface contains tools including File Operation, Zoom/Undo, Routing, and Setup option for parameters, rules, design info, log file, and snapshots.