D3’s d3.geoPath can be used with Canvas, not just SVG! This geometry is from us-atlas.
xxxxxxxxxx
<canvas width="960" height="600"></canvas>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://unpkg.com/topojson-client@3"></script>
<script>
var context = d3.select("canvas").node().getContext("2d"),
path = d3.geoPath().context(context);
d3.json("https://unpkg.com/us-atlas@1/us/10m.json", function(error, us) {
if (error) throw error;
context.beginPath();
path(topojson.mesh(us));
context.stroke();
});
</script>
https://d3js.org/d3.v4.min.js
https://unpkg.com/topojson-client@3