mrnix / rust_d3_geo

A port in progress of d3-geo into rust. Expecting a x10 boost in performance for web applications.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rust d3 geo

This is a port of the d3-geo library into a RUST library crate/package. It is in a very early development phase. That is only sub modules 'rotaions' and 'polygon_contains' has gone through phase 1.

Phase One

Early draft port - sub module by submodule. Sub module porting means the test have also been ported. No API stability guarentees.

Progress so far.

A list of all projections can be found in invert-test.rs. Out of the 15 distinct projections listed only 6 have been ported so far.

  • AziumuthalEqualArea
  • Equirectangular
  • Gnomic
  • Mercator
  • Orthographic
  • Stereographic

TODO

Currently we have 55% test coverage ( as reported by cargo tarpaulin -o Html )

The current target is to increase the code coverage in resample.rs which has some known bugs. resample.rs is covered by clipcircle_test.rs and fit_test.rs. So I am focusing on those tests.

Next, sections of projectionMutator.rs will have to be re-architected for the mercator projection to function like the javascript version.

I am trying to get a program of mine to run faster, but I want this to eventually be a true library port. So feel free to add suggestions to my todo list.

Phase Two

API finialization. There maybe optimisation in the area of generics. So the API only gets locked down in phase 2. The code will be profiled and bottlenecks identified.

Modules, passing test ready for phase 2 evaluation :-

  • rotation
  • projection [ stream() does not yet cache the return value ].
  • The code in stream_dst.rs may need to be simplified.

About

A port in progress of d3-geo into rust. Expecting a x10 boost in performance for web applications.


Languages

Language:Rust 100.0%