fast-image-server

1.0.17 • Public • Published

Fast Image Server

Fast Image Server is an npm package that provides image serving functionality with a focus on converting images to webp format, generating thumbnails, and optimizing image delivery. It utilizes Node.js, Express.js, and includes built-in image caching capabilities.

Features

  • Converts images to webp format
  • Generates thumbnails in webp format
  • Generates low quality preview images in webp format
  • Built-in image cache based on Node.js
  • Uses Express.js for server functionality
  • Automatically creates necessary directories if they do not exist

Usage

Installation

Install the package via npm:

npm install image-server

Starting the Server

  1. Import the startServer function from the package:
const { startServer } = require('fast-image-server')
  1. Call the startServer function to start the Fast Image Server:
  startServer({
      sourceDir: "./high-quality-source-images",
      optimizedDir: "./optimized-images",
      thumbsDir: "./optimized-thumb-images",
      previewDir: "./low-quality-preview-images" 
  }, 4000)

The second argument is the port which if not passed, will default to port 80

Routes

The server listens to requests at the path /images/:imageNameWithExtension. For example:

  • GET /images/a.png
    • If a.png does not exist, returns 404
    • If a.png exists, returns its corresponding webp format
  • GET /images/a.webp
    • Returns the webp corresponding to a.png
    • If webp does not exist, checks if a.png or a.jpg exists and then creates webp from that
  • GET /images/a.thumb.webp
    • Returns the thumbnail for a.png
    • Same rules apply for thumbnails
  • GET /images/a.preview.webp
    • Returns the low quality preview for a.png
    • Same rules apply for preview
  • POST /images/generate-versions/a.png
    • Generates preview, thumb and optimized versions of a.png
    • If a.png is non existent, error is triggered.
    • Returns JSON response with success field and error field

Notes

  • Once served, images will be stored in cache for faster delivery in subsequent requests.
  • Fast Image Server is particularly useful for converting images to webp format and improving image delivery speed in real production uses. It eliminates the need for image conversion in the original application, simplifying the development process.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Readme

Keywords

none

Package Sidebar

Install

npm i fast-image-server

Weekly Downloads

10

Version

1.0.17

License

ISC

Unpacked Size

27.4 kB

Total Files

9

Last publish

Collaborators

  • jinujd