A highly efficient template-based protein-protein docking algorithm, nicknamed SnapDock, is presented. It employs a Geometric Hashing-based structural alignment scheme to align the target proteins to the interfaces of non-redundant protein-protein interface libraries. Docking of a pair of proteins utilizing the 22xe2x80x89600 interface PIFACE library is performed inxe2x80x89<xe2x80x892xe2x80x89min on the average. A flexible version of the algorithm allowing hinge motion in one of the proteins is presented as well.