{"id":24510073,"url":"https://github.com/matthewmturner/rfsee","last_synced_at":"2025-04-14T08:11:20.535Z","repository":{"id":265600198,"uuid":"896319535","full_name":"matthewmturner/rfsee","owner":"matthewmturner","description":"Search and view RFCs in Neovim and from the terminal.","archived":false,"fork":false,"pushed_at":"2025-01-12T17:02:49.000Z","size":20266,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T12:36:22.891Z","etag":null,"topics":["cli","ffi","neovim","neovim-plugin","nvim","nvim-plugin","rust","rust-ffi"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthewmturner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-30T03:37:58.000Z","updated_at":"2025-03-27T06:24:29.000Z","dependencies_parsed_at":"2024-12-16T16:23:34.747Z","dependency_job_id":"3a33a2d8-937b-4c33-86ec-8e4679d6e107","html_url":"https://github.com/matthewmturner/rfsee","commit_stats":null,"previous_names":["matthewmturner/rfsee"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewmturner%2Frfsee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewmturner%2Frfsee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewmturner%2Frfsee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewmturner%2Frfsee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthewmturner","download_url":"https://codeload.github.com/matthewmturner/rfsee/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248843867,"owners_count":21170492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","ffi","neovim","neovim-plugin","nvim","nvim-plugin","rust","rust-ffi"],"created_at":"2025-01-22T00:24:50.443Z","updated_at":"2025-04-14T08:11:20.485Z","avatar_url":"https://github.com/matthewmturner.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rfsee\n\nSearch and view RFCs in Neovim and from the terminal.  A [TF-IDF](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) index is built on the contents of all RFCs from the [IETF](https://www.ietf.org/rfc/rfc-index.txt) 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.\n\n## Project Goals\n\nI had three goals for this project at the offset.\n\n1. Build something useful, that I hope to make use of in my day to day work\n2. Make use of FFI with Rust\n3. Build a high quality and performant project from scratch with only the minimal number of dependencies.\n\nFor 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.\n\nSome of the custom components that were created:\n\n1. An HTTP client\n2. A threadpool (largely copied from the Rust Book)\n3. A TF-IDF index\n\nAnd some of the planned components:\n\n1. A text extractor / parser (currently using regex)\n2. A custom serialization format (currently using simdjson)\n3. An async runtime\n\nI 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.\n\n## Install\n\n### Terminal\n\nCurrently the CLI app can only be installed with [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html).\n\n### NeoVim\n\nWith Lazy\n\n```lua\n{\n    'matthewmturner/rfsee',\n    opts = {},\n    dependencies = {\n        \"nvim-lua/plenary.nvim\"\n    },\n}\n```\n\n## Getting Started\n\n\nAfter installing, you can run the following to create the index.\n\n### Terminal\n\n```bash\nrfsee index\n```\n\nThen, to execute a query its as simple as \n\n```bash\nrfsee search --terms MY_SEARCH_TERMS\n```\n\n### NeoVim\n\n```vim\n:RFSeeIndex\n```\n\nThen, to execute a query its as simple as \n\n```vim\n:RFSee MY_SEARCH_TERMS\n```\n\nThe above will open a new buffer with the results from your search.  You can navigate up and down and then press `\u003cEnter\u003e` on a line to open that RFC in your browser.  In the future this will open the selected RFC in NeoVim.\n\n## Contributing\n\nThis 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewmturner%2Frfsee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthewmturner%2Frfsee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewmturner%2Frfsee/lists"}