OSM database querying for directions/routing

Hi, I was reading the article here: https://wiki.openstreetmap.org/wiki/Routing. It gives a number of options for routing - GraphHopper, ORS, etc. Of these, ORS seems to be free of cost. But is it entirely API based? I mean, can I have it built locally on a machine with huge storage/RAM and use it in-situ for querying for, say, directions from St. Pancras to Trafalgar Square? Secondly, if so, such a process will surely take huge space, and it is not feasible to keep a machine with such huge amount of RAM to fit the entire ORS DB in it. So is there a way around it? Aim - when user searches for directions, the result is served as quickly as say what we get on Google or Bing today. That is not possible if every query needs to be routed to another API (which is likely to be located far away) first, and then the results fetched before sending it back to client. So an in-situ solution is what we need.

So please tell us what solutions from


you have tried so far, and why each does not or even does fit your aims?