Skip to content

Search and view RFCs in Neovim and from the terminal.

License

Notifications You must be signed in to change notification settings

matthewmturner/rfsee

Repository files navigation

rfsee

Search and view RFCs in Neovim and from the terminal. A TF-IDF index is built on the contents of all RFCs from the IETF and then saved locally in a JSON file. A CLI app and NeoVim plugin are provided for searching this index. In the future additional clients may be provided.

Project Goals

I had three goals for this project at the offset.

  1. Build something useful, that I hope to make use of in my day to day work
  2. Make use of FFI with Rust
  3. Build a high quality and performant project from scratch with only the minimal number of dependencies.

For point 3, I intend for the only dependency of this project to be a TLS library for making HTTPS calls (and potentially a JSON serialization library). The initial release of this project will not have achieved that goal yet - but I plan to get there.

Some of the custom components that were created:

  1. An HTTP client
  2. A threadpool (largely copied from the Rust Book)
  3. A TF-IDF index

And some of the planned components:

  1. A text extractor / parser (currently using regex)
  2. A custom serialization format (currently using simdjson)
  3. An async runtime

I time boxed my work on this project to the spare hour or two I had each day (which I normally spend on work separate but related to my job) during the month of December 2024. Moving forward I expect to delegate work on this project to a weekends / as I have time.

Install

Terminal

Currently the CLI app can only be installed with cargo.

NeoVim

With Lazy

{
    'matthewmturner/rfsee',
    opts = {},
    dependencies = {
        "nvim-lua/plenary.nvim"
    },
}

Getting Started

After installing, you can run the following to create the index.

Terminal

rfsee index

Then, to execute a query its as simple as

rfsee search --terms MY_SEARCH_TERMS

NeoVim

:RFSeeIndex

Then, to execute a query its as simple as

:RFSee MY_SEARCH_TERMS

The above will open a new buffer with the results from your search. You can navigate up and down and then press <Enter> on a line to open that RFC in your browser. In the future this will open the selected RFC in NeoVim.

Contributing

This is a personal project that I am using to explore and learn to build an application with minimal dependencies - as such I will likely not be accepting outside contributions. That being said bug reports are always welcome.

About

Search and view RFCs in Neovim and from the terminal.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published