Crossroads.js is a routing library inspired by URL Route/Dispatch utilities present on frameworks like Rails, Pyramid, Django, CakePHP and CodeIgniter.
Crossroads.js was built with flexibility in mind and with the goal to be used as a standalone utility which can be plugged into any application and other libraries or frameworks to allow easy and robust URL dispatch.
One of the main differences of Crossroads.js is that it uses plain strings for the routing system which means it can be used to route URLs, server requests or simply as a messaging system across your application. It also means that Crossroads.js doesn't do things that it isn't supposed to do like updating the window.location, loading data or changing the application state unless you want to.
It also has many advanced features to enable easy and robust mapping of strings to actions that aren't present on most JavaScript solutions.