All Projects → motet-a → gtsearch

motet-a / gtsearch

Licence: MIT license
Web `grep` for Git repositories

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to gtsearch

Ripgrep
ripgrep recursively searches directories for a regex pattern while respecting your gitignore
Stars: ✭ 28,564 (+190326.67%)
Mutual labels:  grep
Ucg
UniversalCodeGrep (ucg) is an extremely fast grep-like tool specialized for searching large bodies of source code.
Stars: ✭ 117 (+680%)
Mutual labels:  grep
Ruplacer
Find and replace text in source files
Stars: ✭ 201 (+1240%)
Mutual labels:  grep
Comb
Interactive code auditing and grep tool in Emacs Lisp
Stars: ✭ 58 (+286.67%)
Mutual labels:  grep
Bingrep
like ~~grep~~ UBER, but for binaries
Stars: ✭ 1,395 (+9200%)
Mutual labels:  grep
Grepbugs
A regex based source code scanner.
Stars: ✭ 118 (+686.67%)
Mutual labels:  grep
Ugrep
🔍NEW ugrep v3.1: ultra fast grep with interactive query UI and fuzzy search: search file systems, source code, text, binary files, archives (cpio/tar/pax/zip), compressed files (gz/Z/bz2/lzma/xz/lz4), documents and more. A faster, user-friendly and compatible grep replacement.
Stars: ✭ 626 (+4073.33%)
Mutual labels:  grep
Amber
A code search / replace tool
Stars: ✭ 230 (+1433.33%)
Mutual labels:  grep
Command Line Text Processing
⚡ From finding text to search and replace, from sorting to beautifying text and more 🎨
Stars: ✭ 9,771 (+65040%)
Mutual labels:  grep
Phpgrep
Syntax-aware grep for PHP code.
Stars: ✭ 185 (+1133.33%)
Mutual labels:  grep
Rare
Fast, realtime regex-extraction, and aggregation into common formats such as histograms, numerical summaries, tables, and more!
Stars: ✭ 76 (+406.67%)
Mutual labels:  grep
Bash Oneliner
A collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance.
Stars: ✭ 1,359 (+8960%)
Mutual labels:  grep
Dategrep
print lines matching a time range
Stars: ✭ 159 (+960%)
Mutual labels:  grep
Vim Grepper
👾 Helps you win at grep.
Stars: ✭ 1,030 (+6766.67%)
Mutual labels:  grep
Learn gnugrep ripgrep
Example based guide to mastering GNU grep and ripgrep
Stars: ✭ 204 (+1260%)
Mutual labels:  grep
Sakura
SAKURA Editor (Japanese text editor for MS Windows)
Stars: ✭ 689 (+4493.33%)
Mutual labels:  grep
Ack2
**ack 2 is no longer being maintained. ack 3 is the latest version.**
Stars: ✭ 1,504 (+9926.67%)
Mutual labels:  grep
stream-editor
A web tool for interactively using and chaining command-line text manipulation utilities like sed, grep, and awk.
Stars: ✭ 25 (+66.67%)
Mutual labels:  grep
Grab
experimental and very fast implementation of a grep
Stars: ✭ 230 (+1433.33%)
Mutual labels:  grep
Goreplace
command line tool for search and replace
Stars: ✭ 164 (+993.33%)
Mutual labels:  grep

gtsearch

Build Status

This is a web server and web client for GNU grep and Git repositories. It is a kind of a much simpler Hound or Livegrep, which does not require to index files.

Here is a running demo instance.

demo-gif-image

Is it slow?

Yes and no. grep on Linux is blazing fast on small repositories. Moreover, the gtsearch server streams results via WebSockets to the client in order to show the first matches instantly.

gtsearch starts one grep process per search. When some results don't fit on the client screen, the grep process is paused with kill(SIGTSTP). When the user scrolls down the result list, the server resumes the grep process with kill(SIGCONT). When the user starts a new search, the previous grep process is killed with kill(SIGTERM). It’s a bit tricky but it works.

However, grep is much slower with specific queries on very large repositories. Consider using Hound or Livegrep instead.

Regexps?

Currently no, but it’s really easy to implement since grep supports them. Please send PRs.

Deploy

docker run -d -p 8080:8080 -e GTSEARCH_ADDRESS=0.0.0.0 moteta/gtsearch:0.11

It listens on localhost by default.

Repositories and SQLite files are stored at /gs/server/var/ in the container. Feel free to create a volume.

The admin password is printed on stdout. Copy and paste it in the /login form in order to add the first repository.

That’s it.

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