Yet another pager in Rust

Overview

rust-pager

Yet another pager in Rust

Features

  • Vim like keybindings
  • Search substring
  • Mouse wheel support

Install

cargo install rust-pager

Usage

<command> | rp

or

rp <path>

Screenshot

Screenshot

Comments
  • Scrolling is a bit choppy.

    Scrolling is a bit choppy.

    I did manage to get rp working with process substitution, and it's a pretty nice pager without any of the bulk that comes with less. Scrolling is a bit choppy and slow with iTerm2 though, unfortunately:

    https://user-images.githubusercontent.com/32112321/112741008-983be480-8f36-11eb-9e3b-3e0b17939662.mov

    enhancement 
    opened by eth-p 4
  • bat compatibility

    bat compatibility

    The basic features work well. :+1:


    I tried rp after setting it as the default pager, but it is not compatible.

    PAGER=rp
    bat <file.name>
    

    Pager is less image

    Pager is rp image

    Especially the problem is that the layout of the emulator is completely broken after running bat. image

    bug 
    opened by black7375 2
  • Ansi search

    Ansi search

    Fix #7

    Note that highlighting doesn't work well when cross other styles it need more hard works and hurt performance I think that's not very important feature yet

    opened by Riey 0
  • Fix unnecessary redraws with scrolling.

    Fix unnecessary redraws with scrolling.

    This fix prevents unnecessary redraws and improves the experience when scrolling.

    Prior to this fix, whenever you used a fast scroll wheel (e.g. trackpad scrolling) and scrolled above the beginning or past the end, rp would unnecessarily redraw the screen with every scroll event received. This would often result in waiting 15 seconds for rp to catch up to the stream of incoming events.

    opened by eth-p 0
  • Keymap Compatibility

    Keymap Compatibility

    https://gist.github.com/sudojunior/1ebdc489ebf9eb86f5f32b50c459ac4a In less, you can press h to view the same screen.

    For example, page switching is possible with f and b. It seems that some Emacs's keymaps are also supported. (C-n, C-p, C-v, ...)

    enhancement good first issue 
    opened by black7375 0
  • Search doesn't work properly with ANSI colors.

    Search doesn't work properly with ANSI colors.

    When trying to search through a file with colors, rp can't search across colors.

    image

    In the above screenshot, the string use crate::less is not found in the syntax-highlighted file.

    bug 
    opened by eth-p 0
  • "Failed to initialize input reader"

    rust-pager doesn't appear to be able to read from stdin on MacOS.

    $ ls . | rp
    Error: IoError(Custom { kind: Other, error: "Failed to initialize input reader" })
    

    It does work perfectly fine with process substitution, however:

    $ rp <(ls .)
    [pager contents...]
    

    Build Information

    Version: rp 0.1.0 Platform: macOS 10.14.6 (Darwin 18.7.0) Compiler: rustc 1.49.0 (x86_64-apple-darwin)

    bug 
    opened by eth-p 2
Releases(v0.2.3)
Owner
Rust đź’•
null
interative assembly shell written in rust

Overview this project is inspired by https://github.com/poppycompass/asmshell Preview Build from source git clone https://github.com/keystone-engine/k

Xargin 236 Dec 23, 2022
Distributed compute platform implemented in Rust, and powered by Apache Arrow.

Ballista: Distributed Compute Platform Overview Ballista is a distributed compute platform primarily implemented in Rust, powered by Apache Arrow. It

Ballista 2.3k Jan 3, 2023
Userspace WireGuard® Implementation in Rust

BoringTun BoringTun is an implementation of the WireGuard® protocol designed for portability and speed. BoringTun is successfully deployed on millions

Cloudflare 4.8k Jan 8, 2023
Drill is a HTTP load testing application written in Rust inspired by Ansible syntax

Drill Drill is a HTTP load testing application written in Rust. The main goal for this project is to build a really lightweight tool as alternative to

Ferran Basora 1.5k Dec 28, 2022
An experimental HTTP load testing application written in Rust.

Herd Herd was a small side project in building a HTTP load testing application in Rust with a main focus on being easy to use and low on OS level depe

Jacob Clark 100 Dec 27, 2022
A fast data collector in Rust

Flowgger is a fast, simple and lightweight data collector written in Rust. It reads log entries over a given protocol, extracts them, decodes them usi

Amazon Web Services - Labs 739 Jan 7, 2023
kytan: High Performance Peer-to-Peer VPN in Rust

kytan: High Performance Peer-to-Peer VPN kytan is a high performance peer to peer VPN written in Rust. The goal is to to minimize the hassle of config

Chang Lan 368 Dec 31, 2022
A purpose-built proxy for the Linkerd service mesh. Written in Rust.

This repo contains the transparent proxy component of Linkerd2. While the Linkerd2 proxy is heavily influenced by the Linkerd 1.X proxy, it comprises

Linkerd 1.7k Jan 7, 2023
Full fake REST API generator written with Rust

Weld Full fake REST API generator. This project is heavily inspired by json-server, written with rust. Synopsis Our first aim is to generate a fake ap

Seray Uzgur 243 Dec 31, 2022
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

Wez's Terminal A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust User facing docs and guide a

Wez Furlong 6.7k Jan 2, 2023
pastebin written in pure rust. A rewrite of ptpb/pb.

rspb rust fork of ptpb/pb TL;DR Create a new paste from the output of cmd: cmd | curl -F c=@- https://pb.mgt.moe/ Usage Creating pastes > echo hi | c

mgt 39 Jan 4, 2023
The LibreTranslate API for Rust.

libretranslate-rs A LibreTranslate API for Rust. libretranslate = "0.2.4" libretranslate allows you to use open source machine translation in your pr

Grant Handy 51 Jan 5, 2023
A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs.

City17 A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs. By running this in specific countries and using a brow

Malloc Voidstar 5 Dec 15, 2021
Fork of async-raft, the Tokio-based Rust implementation of the Raft protocol.

Agreed Fork of async-raft, the Tokio-based Rust implementation of the Raft distributed consensus protocol. Agreed is an implementation of the Raft con

NLV8 Technologies 8 Jul 5, 2022
Rust runtime for Vercel Functions.

Rust Rust runtime for Vercel Functions. Community-maintained package to support using Rust inside Vercel Functions as a Runtime. Usage First, you'll n

Vercel Community 378 Dec 30, 2022
A syntax-highlighting pager for git, diff, and grep output

Get Started Install delta and add this to your ~/.gitconfig: [core] pager = delta [interactive] diffFilter = delta --color-only [delta]

Dan Davison 16k Dec 31, 2022
Yet another fancy watcher. (Rust)

funzzy Yet another fancy watcher. (Inspired by antr / entr) Configure execution of different commands using semantic yaml. # .watch.yaml # list here a

Cristian Oliveira 188 Dec 12, 2022
Yet Another Technical Analysis library [for Rust]

YATA Yet Another Technical Analysis library YaTa implements most common technical analysis methods and indicators. It also provides you an interface t

Dmitry 197 Dec 29, 2022
Yarte stands for Yet Another Rust Template Engine

Should we start to worry? bytes-buf feature can produce SIGILL. avx and sse flags are in almost all cpus of x86 and x86_64 architectures. More details

Juan Aguilar 249 Dec 19, 2022
Yet another trojan-gfw in Rust

Trojan-rust Yet another trojan-gfw implementation in Rust. Features Server mode only (for now). Supports Redis auth & flow stat. Uses OpenSSL as crypt

粒粒橙 34 Oct 25, 2022