node package manager



(Work in progress, see notes below.)

Build Status Coverage Status

This module is a client for Google Safe Browsing API v3. It aims to be able to synchronize an offline, encrypted database of URLs pointing to potentially malicious content, and perform fast lookups against that database.


For a taste what the target API is going to look like, check out the very well-commented (but non-functional until the upcoming work lands) example app.

Implementation Progress

  • Swappable persistence layer implemented on top of Redis.
  • Request serializers and response parsers for the API's endpoints for:
  • Fetch methods wrapping the above and the persistence layer to perform synchronization operations.
  • URL canonicalizer, with proper support for encoding IDNs. Need further tests.
  • Lookup expression generator, to create the different variants of canonicalized URLs to hash and match against hash prefixes and full-length hashes.
  • Fetcher class to schedule data fetches from the API. It should automatically fetch data at specified intervals, obey backoff constraints, and where possible batch full-length hash requests. Need further tests.
  • Matcher and MatchResults classes, to wrap the URL canonicalizer, lookup expression generator, and persistence layer to cleanly perform lookups. Need further tests.