All Projects → simon987 → Sist2

simon987 / Sist2

Licence: gpl-3.0
Lightning-fast file system indexer and search tool

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Sist2

Laravel Book
Up to date Epub, Mobi and PDF versions from the official Laravel Docs
Stars: ✭ 221 (-9.8%)
Mutual labels:  mobi
Video Transcoder
Android app for video and audio transcoder, based on FFmpeg
Stars: ✭ 234 (-4.49%)
Mutual labels:  ffmpeg
Lintel
A Python module to decode video frames directly, using the FFmpeg C API.
Stars: ✭ 240 (-2.04%)
Mutual labels:  ffmpeg
Fanplayer
A portable video player based on ffmpeg for windows and android platform.
Stars: ✭ 229 (-6.53%)
Mutual labels:  ffmpeg
Elastix
A simple Elasticsearch REST client written in Elixir.
Stars: ✭ 231 (-5.71%)
Mutual labels:  elasticsearch
Esbulk
Bulk indexing command line tool for elasticsearch
Stars: ✭ 235 (-4.08%)
Mutual labels:  elasticsearch
Mpv
🎥 Command line video player
Stars: ✭ 17,018 (+6846.12%)
Mutual labels:  ffmpeg
Retail Demo Store
AWS Retail Demo Store is a sample retail web application and workshop platform demonstrating how AWS infrastructure and services can be used to build compelling customer experiences for eCommerce, retail, and digital marketing use-cases
Stars: ✭ 238 (-2.86%)
Mutual labels:  elasticsearch
Relevant Search Book
Code and Examples for Relevant Search
Stars: ✭ 231 (-5.71%)
Mutual labels:  elasticsearch
Obscuracam
Photo and Video Filtering App for Privacy
Stars: ✭ 238 (-2.86%)
Mutual labels:  ffmpeg
Ccapture.js
A library to capture canvas-based animations at a fixed framerate
Stars: ✭ 2,836 (+1057.55%)
Mutual labels:  ffmpeg
Savify
Download Spotify songs to mp3 with full metadata and cover art!
Stars: ✭ 227 (-7.35%)
Mutual labels:  ffmpeg
Cphalcon7
Dao7 - Web framework for PHP7.x,项目接洽 QQ 176013762
Stars: ✭ 237 (-3.27%)
Mutual labels:  lmdb
Candy
🍭 Cross-platform YouTube-downloader with playlist and channel support as well as build-in audio / video converter.
Stars: ✭ 229 (-6.53%)
Mutual labels:  ffmpeg
Neo4j To Elasticsearch
GraphAware Framework Module for Integrating Neo4j with Elasticsearch
Stars: ✭ 241 (-1.63%)
Mutual labels:  elasticsearch
Syncclient
syncClient,数据实时同步中间件(同步mysql到kafka、redis、elasticsearch、httpmq)!
Stars: ✭ 227 (-7.35%)
Mutual labels:  elasticsearch
Eland
Python Client and Toolkit for DataFrames, Big Data, Machine Learning and ETL in Elasticsearch
Stars: ✭ 235 (-4.08%)
Mutual labels:  elasticsearch
Open Publisher
Using Jekyll to create outputs that can be used as Pandoc inputs. In short - input markdown, output mobi, epub, pdf, and print-ready pdf. With a focus on fiction.
Stars: ✭ 242 (-1.22%)
Mutual labels:  mobi
Typo3 Docker Boilerplate
🍲 TYPO3 Docker Boilerplate project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
Stars: ✭ 240 (-2.04%)
Mutual labels:  elasticsearch
Foliate
A simple and modern GTK eBook reader
Stars: ✭ 3,150 (+1185.71%)
Mutual labels:  mobi

GitHub CodeFactor Development snapshots

Demo: sist2.simon987.net

sist2

sist2 (Simple incremental search tool)

Warning: sist2 is in early development

sist2.png

Features

  • Fast, low memory usage, multi-threaded
  • Mobile-friendly Web interface
  • Portable (all its features are packaged in a single executable)
  • Extracts text and metadata from common file types *
  • Generates thumbnails *
  • Incremental scanning
  • Manual tagging from the UI and automatic tagging based on file attributes via user scripts
  • Recursive scan inside archive files **
  • OCR support with tesseract ***
  • Stats page & disk utilisation visualization

* See format support
** See Archive files
*** See OCR

stats

Getting Started

  1. Have an Elasticsearch (>= 6.X.X) instance running

    1. Download from official website
    2. (or) Run using docker:
      docker run -d --name es1 --net sist2_net -p 9200:9200 \
          -e "discovery.type=single-node" elasticsearch:7.5.2
      
    3. (or) Run using docker-compose:
        elasticsearch:
          image: docker.elastic.co/elasticsearch/elasticsearch:7.5.2
          environment:
            - discovery.type=single-node
            - "ES_JAVA_OPTS=-Xms1G -Xmx2G"
      
  2. Download sist2 executable

    1. Download the latest sist2 release *
    2. (or) Download a development snapshot (Not recommended!)
    3. (or) docker pull simon987/sist2:latest
  3. See Usage guide

* Windows users: sist2 runs under WSL

Example usage

See Usage guide for more details

  1. Scan a directory: sist2 scan ~/Documents -o ./docs_idx
  2. Push index to Elasticsearch: sist2 index ./docs_idx
  3. Start web interface: sist2 web ./docs_idx

Format support

File type Library  Content Thumbnail Metadata
pdf,xps,fb2,epub MuPDF text+ocr yes author, title
cbz,cbr (none) - yes -
audio/* ffmpeg - yes ID3 tags
video/* ffmpeg - yes title, comment, artist
image/* ffmpeg - yes Common EXIF tags
raw, rw2, dng, cr2, crw, dcr, k25, kdc, mrw, pef, xf3, arw, sr2, srf, erf LibRaw - yes Common EXIF tags
ttf,ttc,cff,woff,fnt,otf Freetype2 - yes, bmp Name & style
text/plain (none) yes no -
html, xml (none) yes no -
tar, zip, rar, 7z, ar ... Libarchive yes* - no
docx, xlsx, pptx (none) yes if embedded creator, modified_by, title
doc (MS Word 97-2003) antiword yes yes author, title
mobi, azw, azw3 libmobi yes no author, title

* See Archive files

Archive files

sist2 will scan files stored into archive files (zip, tar, 7z...) as if they were directly in the file system. Recursive (archives inside archives) scan is also supported.

Limitations:

  • Support for parsing media files with formats that require seek (e.g. .gif, .mp4 w/ fragmented metadata etc.) is limitted (see --mem-buffer option)
  • Archive files are scanned sequentially, by a single thread. On systems where sist2 is not I/O bound, scans might be faster when larger archives are split into smaller parts.

OCR

You can enable OCR support for pdf,xps,fb2,epub file types with the --ocr <lang> option. Download the language data files with your package manager (apt install tesseract-ocr-eng) or directly from Github.

The simon987/sist2 image comes with common languages (hin, jpn, eng, fra, rus, spa) pre-installed.

Examples

sist2 scan --ocr jpn ~/Books/Manga/
sist2 scan --ocr eng ~/Books/Textbooks/

Build from source

You can compile sist2 by yourself if you don't want to use the pre-compiled binaries (GCC 7+ required).

  1. Install compile-time dependencies

    vcpkg install lmdb cjson glib libarchive[core,bzip2,libxml2,lz4,lzma,lzo] pthread tesseract libxml2 ffmpeg zstd gtest mongoose libmagic libraw curl[core,ssl] jbig2dec brotli libmupdf
    
  2. Build

    git clone --recursive https://github.com/simon987/sist2/
    cmake -DSIST_DEBUG=off -DCMAKE_TOOLCHAIN_FILE=<VCPKG_ROOT>/scripts/buildsystems/vcpkg.cmake .
    make
    
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].