All Projects → Stiffstream → shrimp-demo

Stiffstream / shrimp-demo

Licence: other
Shrimp is a small HTTP-server that provides shrunk images generated from a specified set.

Programming Languages

C++
36643 projects - #6 most used programming language
ruby
36898 projects - #4 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to shrimp-demo

RCE-python-oneliner-payload
Python bind shell single line code for both Unix and Windows, used to find and exploit RCE (ImageMagick, Ghostscript, ...)
Stars: ✭ 23 (+27.78%)
Mutual labels:  imagemagick
MagickWand
Swift wrapper for ImageMagick (MagickWand) for Linux and MacOS
Stars: ✭ 38 (+111.11%)
Mutual labels:  imagemagick
imei
IMEI - ImageMagick Easy Install
Stars: ✭ 126 (+600%)
Mutual labels:  imagemagick
codeigniter-image-magician
🎨 An ImageMagick library for CodeIgniter.
Stars: ✭ 13 (-27.78%)
Mutual labels:  imagemagick
magick-rust
Rust bindings for ImageMagick
Stars: ✭ 135 (+650%)
Mutual labels:  imagemagick
mozscreenshots
Take screenshots of Mozilla applications in various UI configurations
Stars: ✭ 17 (-5.56%)
Mutual labels:  imagemagick
MagickSlicer
Map tiles generator
Stars: ✭ 73 (+305.56%)
Mutual labels:  imagemagick
pdf-images
The library aims to simplify pdf-conversion by providing wrappers over poppler / pdfImages & imageMagick to convert pdfs to images.
Stars: ✭ 12 (-33.33%)
Mutual labels:  imagemagick
Dev-Tools-Magento-2-Module
A collection of utilities meant to improve the experience of developing modules for Magento without breaking existing functionality.
Stars: ✭ 18 (+0%)
Mutual labels:  imagemagick
pdfScale
Bash Script to Scale and Resize PDFs using Ghostscript
Stars: ✭ 131 (+627.78%)
Mutual labels:  imagemagick
metalsmith-convert
Convert images with imagemagick (via imagemagick-native).
Stars: ✭ 17 (-5.56%)
Mutual labels:  imagemagick
converjon
An advanced image conversion server and command line tool.
Stars: ✭ 52 (+188.89%)
Mutual labels:  imagemagick
favicon
💥 Favicon Generator using Node.js and Imagemagick
Stars: ✭ 33 (+83.33%)
Mutual labels:  imagemagick
lambda-resize-image
An AWS Lambda Function to resize images automatically with API Gateway and S3 for imagemagick tasks. When an image is called on AWS Api Gateway, this package will resize it and send it to the S3.
Stars: ✭ 56 (+211.11%)
Mutual labels:  imagemagick
magickwand-crystal
Crystal C bindings for MagickWand library
Stars: ✭ 67 (+272.22%)
Mutual labels:  imagemagick
FuzzImageMagick
Sample files for fuzzing ImageMagick
Stars: ✭ 15 (-16.67%)
Mutual labels:  imagemagick
srcset.sh
A command line script that generates multiple responsive versions of an image at width breakpoints -- 320,480,640,768,960,1024,1280,1440 pixels wide -- that match common Mobile and widescreen desktop/laptop viewports using Imagemagick's convert utility and outputs the needed <img/> tag
Stars: ✭ 20 (+11.11%)
Mutual labels:  imagemagick
CoreImage
裁剪核心图片
Stars: ✭ 15 (-16.67%)
Mutual labels:  imagemagick
fukuro
Lightweight and powerful next-gen imageboard software based on abandoned Tinyboard
Stars: ✭ 21 (+16.67%)
Mutual labels:  imagemagick
image-optimisation-tools-comparison
A Benchmarking Suite for popular Image Optimisation Tools
Stars: ✭ 28 (+55.56%)
Mutual labels:  imagemagick

What Is Shrimp?

Shrimp is a small HTTP-server that provides shrunk images generated from a specified set. It also supports conversion of an image into a different format (jpg, png, gif, webp and heic are supported).

Basic idea

Suppose you want your server to serve resized images over HTTP. You receive a request and use its path to determine source image and use request query string to determine resize parameters for it. So you end up with the following form requests to your server:

  • http://myserver/path/to/image/img.jpg?op=resize&height=128
  • http://myserver/path/to/image/img.jpg?op=resize&width=2500
  • http://myserver/path/to/image/img.jpg?op=resize&max=1024

You can also request a conversion to different format:

  • http://myserver/path/to/image/img.jpg?op=resize&height=128&target-format=png
  • http://myserver/path/to/image/img.jpg?target-format=webp

And that is what Shrimp is about.

Obtain and build

Prerequisites

Shrimp is developed under Ubuntu (16.04/18.04) using gcc-8.1 or gcc-7.3.

Shrimp uses ImageMagick for working with images. ImageMagick and all its dependencies (like libjpeg-dev, libpng-dev, libwebp, x265, libde265, libheif and so on) must be installed manually.

All other Shrimp's dependencies come with Shrimp.

Obtain Shrimp sources

Obtain from repository

Just use hg clone command to download Shrimp sources.

hg clone https://bitbucket.org/sobjectizerteam/shrimp-demo

You can also download a specific Shrimp's version from a Downloads section.

Building

There are two approaches for building Shrimp:

  • by using Docker;
  • by using Mxx_ru.

The simplest one is Docker-build because all necessary dependencies are downloaded and built automatically during docker build command.

Docker build

You need Docker installed.

Enter into Shrimp's folder and run docker build command:

cd shrimp-demo
docker build -t shrimpdemo .

All necessary dependencies will be downloaded, configured and built inside Docker's image.

Then you can start Docker's image:

docker run -p 8080:80 \
  --mount type=bind,source=YOUR-PATH,destination=/root/images,readonly \
  shrimpdemo

where YOUR-PATH is a path to your images.

Build with Mxx_ru

First of all you need to download, configure and install ImageMagick and all its dependencies. ImageMagick and all necessary image encoders/decoders should be installed in your system before you start building Shrimp. You can take a look onto Dockerfile to see how it can be done.

To build Shrimp from repository you need to install Mxx_ru 1.6.14.5 or above:

apt-get install ruby
gem install Mxx_ru

Mxx_ru helps to download necessary dependencies and used as a build tool.

Clone repo and download dependencies:

hg clone https://bitbucket.org/sobjectizerteam/shrimp-demo
cd shrimp-demo
mxxruexternals

Once you get Shrimp sources and its dependencies you can build it.

# Start with repository root directory
cd dev
# Build and run unit-tests.
ruby build.rb --mxx-cpp-release
# See shrimp.app in 'target/release' directory.

License

Shrimp is distributed under GNU Affero GPL v.3 license (see LICENSE and AGPL files).

For the license of asio library see COPYING file in asio distributive.

For the license of nodejs/http-parser library see LICENSE file in nodejs/http-parser distributive.

For the license of fmtlib see LICENSE file in fmtlib distributive.

For the license of SObjectizer library see LICENSE file in SObjectizer distributive.

For the license of clara library see LICENSE file in clara distributive.

For the license of CATCH library see LICENSE file in CATCH distributive.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].