Teaching myself Rust through the medium of coordinate system transforms and FFI

Transforming coordinates from one coordinate reference system to another is slow, and usually done in bulk, so it’s a great candidate for low-level, multithreaded code, accessed via FFI from higher-level languages to facilitate easy I/O and visualisation. When Rust hit 1.0 last year, I decided to write a library to convert from latitude and longitude coordinates to British National Grid eastings and northings, in order to learn the language. The result is the lonlat_bng crate and the convertbng Python package. This talk will focus on several areas: Experiences from learning a systems programming language for someone coming from dynamic languages Evolving code from single-threaded to multi-threaded, and how to use tests and benchmarks to get there Comparing the performance of the Crossbeam and Rayon libraries for parallel execution Using Perfect Hashing for fast access to large (300K+ members) HashMaps Detecting numerical instability using Herbie, and using Clippy to catch common mistakes and style errors Implementing generic functions to keep your code clean and DRY-conformant Writing a lot of docs and examples, so people can get going quickly Integrating your Rust binary with your dynamic code, and making it available to the rest of the world, including discussion of linking to system libraries, and the intricacies of building cross-platform libraries. --- For more go to https://rustfest.eu or follow us on Twitter: https://twitter.com/rustfest Help us caption & translate this video! http://amara.org/v/2FiS/
Length: 36:48
Views 470 Likes: 10
Recorded on 2016-09-17 at RustFest
Look for other videos at RustFest.
Tweet this video