sainte_lague 0.1.0

Sainte-Laguë method for seat distribution used in multiple parliamentary elections all over the world.


A rust implementation of the Sainte-Laguë (also known as Webster or Schepers) method. Parliament seat allocation algorithm used in multiple countries such as Germany, Latvia, New Zealand etc…

Attention: Since some countries (like Latvia or Norway) use a modification of the algorithm instead of this vanilla version, you should check your country's electoral legislature. Furthermore, I don't take any responsibility for the accuracy of the calculated numbers, even though I'm pretty confident with my implementation.

Crate Version Build Status License


use sainte_lague::distribute;

// …
fn german_bundestag_2013() {
	let votes = [41.5, 25.7, 8.6, 8.4];
	let seats = 631;

	let distribution = distribute(&votes, &seats, &false);
	let parliament = vec![311, 193, 64, 63];
	assert_eq!(distribution, Ok(parliament));
// …

Full documentation on

Similar projects


If you found a bug or want to propose a feature, feel free to visit the issues page.