| Crates.io | ruggle-engine |
| lib.rs | ruggle-engine |
| version | 0.0.1 |
| created_at | 2025-10-28 18:23:14.432828+00 |
| updated_at | 2025-10-28 18:23:14.432828+00 |
| description | Structural search for Rust |
| homepage | |
| repository | https://github.com/alpaylan/ruggle |
| max_upload_size | |
| id | 1905417 |
| size | 142,628 |
Ruggle is a fork of Roogle, a Rust API search engine that allow for searching functions using type signatures over Rust codebases.
The idea of API search for programming languages isn't novel, Hoogle has been around for more than 2 decades, Roogle itself is 4 years old, OCaml has Sherlodoc, Lean recently announced Loogle!...
The vision for Ruggle is not to just to be yet another API search tool, but become the default mode of search when working on a Rust project, making structural search a first class citizen developer tooling. When searching in a codebase, it is rare that we are without context; however text search forces us to build a textual context when we already have access to much more structural information. The objective of Ruggle is to build this graph of structured information, and allow the user to query it as a better search engine.
Roogle seems to be in public archival mode, that's why I've decided to publish Ruggle as a separate project. There are already some major changes to the project:
rustdoc_types for faster decoding using bincodeThese are some initial steps for the project, to be followed by better and faster search, better autocomplete in the search bar, a large index of available projects on crates.io, code actions for filling type holes in incomplete Rust programs, as well as more complex queries.
Installation with VSCode is available in the extensions bar and the marketplace as well as through the CLI:
code --install-extension AlperenKeles.ruggle
The first time you run the extension, it will automatically download the server from the latest release. Alternatively, you can download latest release of the server via:
curl -fsSL https://raw.githubusercontent.com/alpaylan/ruggle/main/install.sh | bash
The server is also available in crates.io:
cargo install ruggle-server
Once you have the server, you can locally run it via:
ruggle-server --host 127.0.0.1 --port 8000
By default the server looks for the index in $HOME/.ruggle which you can override with --index <path>.
fn <name>(<arg-name>: <type>, <arg-name>: <type>) -> <type>(A -> ... -> C)<mod|struct|enum> <symbol>: <funtion-query>,<T>)<T: Copy>)IpAddr)Vec<T>, Option<T>)After starting the server, visit http://localhost:8000/ for a simple search UI. It lets you:
scope from /scopesquerylimit and thresholdBuild and run the CLI, you can both run an standalone search and request to an existing server:
$ cargo run --bin ruggle-cli -- --scope set:libstd --query "fn (Option<Result<T, E>>) -> Result<Option<T>, E>>"
When asking the server, you set --host for the server URL.
$ cargo run --bin ruggle-cli -- --host "http://127.0.0.1:58034" --scope crate:tracing:0.1.41 --query "fn (Option<Result<T, E>>) -> Result<Option<T>, E>>"
Flags: --host (default http://localhost:8000), --scope, --limit, --threshold, --json.
The extension lives in vscode-ruggle/.
cd vscode-ruggle && npm package package && code --install-extension ./ruggle-0.0.2.vsixThere are a variety of settings including: ruggle.host, ruggle.scope, ruggle.limit, ruggle.threshold, ruggle.server.