https://github.com/dasch-swiss/sipi

Simple Image Presentation Interface

https://github.com/dasch-swiss/sipi

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

iiif image-conversion image-processing
Last synced: 6 months ago · JSON representation

Repository

Simple Image Presentation Interface

Basic Info
  • Host: GitHub
  • Owner: dasch-swiss
  • License: agpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage: https://sipi.io
  • Size: 439 MB
Statistics
  • Stars: 34
  • Watchers: 11
  • Forks: 9
  • Open Issues: 56
  • Releases: 65
Topics
iiif image-conversion image-processing
Created almost 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

Build Status

Sipi - Simple Image Presentation Interface

Overview

Simple Image Presentation Interface (SIPI) is a multithreaded, high-performance, IIIF compatible media server developed by the Swiss National Data and Service Center for the Humanities at the University of Basel. It is designed to be used by archives, libraries, and other institutions that need to preserve high-quality images while making them available online.

SIPI implements the Image API 3.0 of the International Image Interoperability Framework (IIIF), and efficiently converts between image formats, preserving metadata contained in image files. In particular, if images are stored in JPEG 2000 format, Sipi can convert them on the fly to formats that are commonly used on the Internet. SIPI offers a flexible framework for specifying authentication and authorization logic in Lua scripts, and supports restricted access to images, either by reducing image dimensions or by adding watermarks. It can easily be integrated with Knora. In addition SIPI preserves most of the EXIF, IPTC and XMP metadata and can preserve or transform ICC color profiles.

In addition, a simple webserver is integrated. The server is able to serve most common file types. In addition Lua scripts and embedded Lua (i.e., Lua embedded into HTML pages using the tags <lua></lua> are supported.

SIPI can also be used from the command line to convert images to/from TIFF-, JPEG 2000, JPEG- and PNG- formats. For all these conversion, SIPI tries to preserve all embedded metadata such as - IPTC - EXIF - XMP - ICC color profiles. However, due to the limitations of some file formats, it cannot be guaranteed that all metadata and ICC profiles are preserved. - JPEG2000 (J2k) does not allow all types of ICC profiles profiles. Unsupported profile types will be added to the J2k header as comment and will be

SIPI is a free software, released under the GNU Affero General Public License. It is written in C++ and runs on Linux and macOS. Note: In order to compile SIPI, the user has to provide a licensed source of the kakadu software.

It is written in C++ and runs on Linux (including Debian, Ubuntu, and CentOS) and macOS.

Freely distributable binary releases are available daschswiss/sipi as docker image.

Documentation

The documentation is online at https://sipi.io.

To build it locally, you will need MkDocs. In the root the source tree, type:

make docs-build

You will then find the manual under site/index.html.

Building from source

All should be run from inside the root of the repository.

Build and run inside Docker - recommended

bash $ make compile $ make test $ make run

Build under macOS - not recommended. You are on your own. We warned you ;-)

bash $ (mkdir -p ./build-mac && cd build-mac && cmake .. && make && ctest --verbose)

Sentry.io

If you would like to use Sentry.io for error reporting, you can set the environment variable SIPI_SENTRY_DSN to the DSN of your Sentry project. If you do not set this variable, Sentry.io will not be used.

Further variables can be set to configure the Sentry client: - SIPI_SENTRY_ENVIRONMENT: The environment in which the application is running. Defaults to development. - SIPI_SENTRY_RELEASE: The release version number of the application.

Releases

Releases are published on Dockerhub: https://hub.docker.com/repository/docker/daschswiss/sipi

How should I write my commits?

We are using Conventional Commit messages.

The most important prefixes you should have in mind are:

  • fix: which represents bug fixes, and correlates to a SemVer patch.
  • feat: which represents a new feature, and correlates to a SemVer minor.
  • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a SemVer major.

This is the complete list of what is defined and if it is visible in the changelog: - 'feat' -> section: 'Features' - 'feature' -> section: 'Features' - 'fix' -> section: 'Bug Fixes' - 'perf' -> section: 'Performance Improvements' - 'revert' -> section: 'Reverts' - 'docs' -> section: 'Documentation', hidden: true - 'style' -> section: 'Styles', hidden: true - 'chore' -> section: 'Miscellaneous Chores', hidden: true - 'refactor' -> section: 'Code Refactoring', hidden: true - 'test' -> section: 'Tests', hidden: true - 'build' -> section: 'Build System', hidden: true - 'ci' -> section: 'Continuous Integration', hidden: true ```

Contact Information

DaSCH Support <support@dasch.swiss>

Owner

  • Name: DaSCH - Swiss National Data and Service Center for the Humanities
  • Login: dasch-swiss
  • Kind: organization
  • Email: info@dasch.swiss
  • Location: Switzerland

Development repositories of the DaSCH.

GitHub Events

Total
  • Release event: 5
  • Watch event: 2
  • Delete event: 20
  • Issue comment event: 33
  • Push event: 90
  • Pull request review comment event: 16
  • Pull request review event: 36
  • Pull request event: 46
  • Fork event: 1
  • Create event: 22
Last Year
  • Release event: 5
  • Watch event: 2
  • Delete event: 20
  • Issue comment event: 33
  • Push event: 90
  • Pull request review comment event: 16
  • Pull request review event: 36
  • Pull request event: 46
  • Fork event: 1
  • Create event: 22

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 27
  • Average time to close issues: N/A
  • Average time to close pull requests: 29 days
  • Total issue authors: 0
  • Total pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 1.22
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 26
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Issue authors: 0
  • Pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 1.19
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • benjamingeer (1)
  • julsraemy (1)
  • theVannu (1)
  • albayenes (1)
  • subotic (1)
  • SepidehAlassi (1)
Pull Request Authors
  • subotic (27)
  • siers (22)
  • daschbot (13)
  • dependabot[bot] (10)
  • retokromer (2)
  • stefan-it (1)
  • seakayone (1)
Top Labels
Issue Labels
stage/backlog (1) chore (1) question (1) bug (1)
Pull Request Labels
autorelease: pending (13) dependencies (10) github_actions (5)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 38
proxy.golang.org: github.com/dasch-swiss/sipi
  • Versions: 38
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • mkdocs ==1.2.3
  • mkdocs-material *
  • pytest *
  • requests *
  • testcontainers *
.github/actions/checkout/action.yml actions
  • actions/checkout v3 composite
.github/actions/setup-python/action.yml actions
.github/actions/start-debug-session/action.yml actions
  • alexellis/actuated-ssh-gateway-action master composite
  • alexellis/block-with-tmux-action master composite
  • alexellis/setup-sshd-actor master composite
Dockerfile docker
  • $SIPI_BASE latest build
  • $UBUNTU_BASE latest build
docs/requirements.txt pypi
  • mkdocs ==1.4.2
  • mkdocs-material *
.github/workflows/docker-build.yml actions
  • dasch-swiss/sipi/.github/actions/checkout main composite
  • dasch-swiss/sipi/.github/actions/setup-python main composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
.github/workflows/publish.yml actions
  • actions/checkout v4 composite
  • dasch-swiss/sipi/.github/actions/checkout main composite
  • dasch-swiss/sipi/.github/actions/setup-python main composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • mhausenblas/mkdocs-deploy-gh-pages master composite
.github/workflows/test.yml actions
  • cachix/install-nix-action v26 composite
  • codecov/codecov-action v4.1.1 composite
  • dasch-swiss/sipi/.github/actions/checkout main composite
.github/workflows/release-please.yml actions
  • google-github-actions/release-please-action v4 composite