npm promulgates marsupials

    TypeScript icon, indicating that this package has built-in type declarations

    4.0.8 • Public • Published


    Version Dependencies Build Coverage

    A module that finds the size and type of an image by fetching and reading as little data as needed.


    Just run:

    npm install fastimage


    The signature is, [options], [callback]).

    The source argument can be:

    • String representing a URL (only http and https protocol are supported).
    • String representing a local file path.
    • Buffer containing image data.
    • Stream containing image data.

    The options object supports the following options:

    • threshold: The maximum about of data (in bytes) to downloaded or read before giving up. Default is 4096.
    • timeout: The maximum time (in milliseconds) to wait for a URL to be downloaded before giving up. Default is 30000 (30 s).
    • userAgent: The user agent to use when making HTTP(S) requests. Default is fastimage/$VERSION.

    If callback is not provided, the method returns a Promise.


    import { info } from 'fastimage'
    info('', (error, data) => {
      if (error) {
        // ...
      } else {
        // ...
    const data = await info('')

    The callback argument (or the resolved value) will be an object with the following properties:

      "width": 1000, // The width of the image in pixels.
      "height": 1000, // The height of the image in pixels.
      "type": "png", // The type of the image. Can be one of the supported images formats (see section below).
      "time": 171.43721 // The time required for the operation, in milliseconds.
      "analyzed": 979, // The amount of data transferred (in bytes) or read (in case of files or Buffer) to identify the image.
      "realUrl": "", // The final URL of the image after all the redirects. Only present if the source was a URL.
      "size": 17300, // The size of the image (in bytes). Only present if the source was a URL and  if the server returned the "Content-Length" HTTP header.


    Calling it will return a Writable stream which will emit the info event once informations are ready.

    The stream accepts only the threshold option.

    import { stream } from 'fastimage'
    const pipe = createReadStream('/path/to/image.png').pipe(stream({ threshold: 100 }))
    pipe.on('info', data => {
      // ...

    Supported image formats

    The supported image type are (thanks to the image-size module):

    • BMP
    • CUR
    • DDS
    • GIF
    • ICNS
    • ICO
    • JPEG
    • KTX
    • PNG
    • PSD
    • SVG
    • TIFF
    • WebP

    ESM Only

    This package only supports to be directly imported in a ESM context.

    For informations on how to use it in a CommonJS context, please check this page.

    Contributing to fastimage

    • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
    • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
    • Fork the project.
    • Start a feature/bugfix branch.
    • Commit and push until you are happy with your contribution.
    • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.


    Copyright (C) 2015 and above Shogun (

    Licensed under the MIT license, which can be found at


    npm i fastimage

    DownloadsWeekly Downloads






    Unpacked Size

    20.6 kB

    Total Files


    Last publish


    • shogun_panda