All Projects → uoregon-libraries → rais-image-server

uoregon-libraries / rais-image-server

Licence: CC0-1.0 License
RAIS: A IIIF-compliant, 100% open source image server for blazing-fast deep zooming

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
c
50402 projects - #5 most used programming language
HTML
75241 projects
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to rais-image-server

digilib
A versatile image viewing environment for the internet.
Stars: ✭ 17 (-76.39%)
Mutual labels:  iiif, image-server
toggler
toggler is a feature flag service to decouple deployment, feature enrollment and experiments
Stars: ✭ 27 (-62.5%)
Mutual labels:  golang-application
gallery-server
Beautiful and powerful yet simple local image viewer on your PC or mobile.
Stars: ✭ 16 (-77.78%)
Mutual labels:  image-server
go-mux-jwt-boilerplate
Golang REST API using MUX, GORM, and JWT for authentication
Stars: ✭ 41 (-43.06%)
Mutual labels:  golang-application
rss2email
Convert RSS feeds to emails
Stars: ✭ 72 (+0%)
Mutual labels:  golang-application
gin-rest-api
Example golang using gin framework everything you need, i create this tutorial special for beginner.
Stars: ✭ 56 (-22.22%)
Mutual labels:  golang-application
AutoSpotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,058 (+2758.33%)
Mutual labels:  golang-application
matrix-corporal
Matrix Corporal: reconciliator and gateway for a managed Matrix server
Stars: ✭ 100 (+38.89%)
Mutual labels:  golang-application
smtp-dkim-signer
SMTP-proxy that DKIM-signs e-mails before submission to an upstream SMTP-server.
Stars: ✭ 28 (-61.11%)
Mutual labels:  golang-application
breakglass
A command line tool to provide login credentials from Hashicorp Vault
Stars: ✭ 33 (-54.17%)
Mutual labels:  golang-application
pigger
A cross-platform note taking and static blog writing system in golang
Stars: ✭ 16 (-77.78%)
Mutual labels:  golang-application
librfxcodec
JPEG2000 codec for RDP
Stars: ✭ 18 (-75%)
Mutual labels:  jpeg2000
jump-jump
开箱即用,Golang 开发的一个功能完善的短链接系统。URL shortener service developed with golang.
Stars: ✭ 110 (+52.78%)
Mutual labels:  golang-application
zauth
2FA (Two-Factor Authentication) application for CLI terminal with support to import/export andOTP files.
Stars: ✭ 74 (+2.78%)
Mutual labels:  golang-application
gino-keva
A simple Git Notes Key Value store
Stars: ✭ 23 (-68.06%)
Mutual labels:  golang-application
Morpheus
A Matrix client written in Go-QT
Stars: ✭ 20 (-72.22%)
Mutual labels:  golang-application
react-simple-image-zoom
Simple image zoom component for react
Stars: ✭ 12 (-83.33%)
Mutual labels:  zoomable-images
authz0
🔑 Authz0 is an automated authorization test tool. Unauthorized access can be identified based on URLs and Roles & Credentials.
Stars: ✭ 248 (+244.44%)
Mutual labels:  golang-application
rebirth
Supports live reloading for Go
Stars: ✭ 60 (-16.67%)
Mutual labels:  golang-application
GOCSP-responder
OCSP responder written in Go meant to be used with easy-rsa
Stars: ✭ 24 (-66.67%)
Mutual labels:  golang-application

Go Report Card

Rodent-Assimilated Image Server

Gocutus, the RAIS mascot

RAIS was originally built by eikeon as a 100% open source, no-commercial-products-required, proof-of-concept tile server for JP2 images within chronam.

It has been updated to allow more command-line options, more source file formats, more features, and conformance to the IIIF spec.

RAIS is very efficient, completely free, and easy to set up and run. See our wiki pages for more details and documentation.

Configuration

Main Configuration Settings

RAIS uses a configuration system that allows environment variables, a config file, and/or command-line flags. See rais-example.toml for an example of a configuration file. RAIS will use a configuration file if one exists at /etc/rais.toml.

The configuration file's values can be overridden by environment variables, while command-line flags will override both configuration files and environmental variables. Configuration is best explained and understood by reading the example file above, which describes all the values in detail.

Cloud Settings

Because connecting to a cloud provider is optional, often means using a container-based setup, and differs from one provider to the next, all RAIS cloud configuration is environment-only. This means it can't be specified on the command line or in rais.toml.

Currently RAIS can theoretically support S3, Azure, and Google Cloud backends, but only S3 has had much testing. To set up RAIS for S3, you would have to export the following environment variables (in addition to having an S3-compatible object store running):

  • AWS_ACCESS_KEY_ID: Required
  • AWS_SECRET_ACCESS_KEY: Required
  • AWS_REGION: Required
  • RAIS_S3_ENDPOINT: optionally set for custom S3 backends; e.g., "minio:9000"
  • RAIS_S3_DISABLESSL: optionally set this to "true" for custom S3 backends which don't need SSL (for instance if they're running on the same server as RAIS)
  • RAIS_S3_FORCEPATHSTYLE: optionally set this to "true" to force path-style S3 calls. This is typically necessary for custom S3 backends like minio, but not for AWS.

Other backends have their own environment variables which have to be set in order to have RAIS connect to them.

For a full demo of a working custom S3 backend powered by minio, see docker/s3demo.

Note that external storage is going to be slower than serving images from local filesystems! Make sure you test carefully!

IIIF Features

RAIS supports level 2 of the IIIF Image API 2.1 as well as a handful of features beyond level 2. See the IIIF Features wiki page for an in-depth look at feature support.

Caching

RAIS can internally cache the IIIF info.json requests and individual tile requests. See the RAIS Caching wiki page for details.

Generating tiled, multi-resolution JP2s

RAIS performs best with JP2s which are generated as tiled, multi-resolution (think "zoom levels") images. Generating images like this is fairly easy with either the openjpeg tools or graphicsmagick. Other tools probably do this well, but we've only directly used those.

You can find detailed instructions on the How to encode jp2s wiki page.

License

CC0

RAIS Image Server is in the public domain under a CC0 license.

Contributors

Special thanks to Jessica Dussault (@jduss4) for providing the hand-drawn "Gocutus" logo, and Greg Tunink (@techgique) for various digital refinements to said logo.

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].