This mimics redist's redist.adjacency using geos to create the patterns, rather than sf. This is faster than that version, but forces projections.
adjacency(shp, epsg = 3857)Zero-indexed adjacency list with nrow(shp) entries.
data(precincts)
adj <- adjacency(precincts)