I'm looking for a .NET replacement to MoNav. I'm currently calling a C++ MoNav DLL via COM and it works great--it's fast and memory efficient, and can both load itself and route across the country almost instantaneously. A pre-processed graph for a 5GB OSM file is only ~400MB, which is another plus as I do not need to distribute the source OSM files. However, the COM dependency is a slight issue with certain customers' setups. Its turn-by-turn directions leave a lot to be desired as well.

So I was wondering if anyone knows of a .NET replacement? One that preferably used Contraction Hierarchies, has a low memory footprint, and can reliably route across the United States in under a second. That may be asking a lot, I know.

My searches have only turned up OsmSharp thus far, and while it looked promising initially, in practice the load times were abysmal for even pre-processed CH graphs (though I am still playing with it and tweaking parameters to try and resolve this).

Just wanted to know if anyone knew of a suitable replacement before I attempt to write a C++/CLI wrapper for the original MoNav library and spend a few days (weeks?) on a better turn-by-turn system. So far I haven't found one.


  • 1
    You may want to contact Ben, the author of OsmSharp for performance tips. He is very knowledgeable. – johanvdw Apr 9 '14 at 13:30
  • I agree, I have worked with Ben too. – warrieka Apr 10 '14 at 8:44
  • You could try GraphHopper with iKVM – Karussell Dec 11 '14 at 21:26

Take a look at OSRM (Open Source Routing Machine). It uses contraction hierarchies, is VERY fast. It's written in C++ - but this is a small standalone server application. You could simply use a few network API calls and a JSON parser. So wouldn't add coupling to your C# application.


Well, there are just very few .NET components esp. for routing with OSM:

In short: I guess a wrapper is a better way to deal with your requirements, esp. as you seem to be lucky with MoNav in general.


How about itinero ?
Fully managed C#:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.