Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shepmaster/ebene-rust
A Rust source code parser and explorer
https://github.com/shepmaster/ebene-rust
parser rust
Last synced: 4 months ago
JSON representation
A Rust source code parser and explorer
- Host: GitHub
- URL: https://github.com/shepmaster/ebene-rust
- Owner: shepmaster
- License: apache-2.0
- Created: 2017-01-16T23:29:51.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2023-08-31T02:01:01.000Z (over 1 year ago)
- Last Synced: 2024-10-13T20:48:24.367Z (4 months ago)
- Topics: parser, rust
- Language: TypeScript
- Homepage:
- Size: 529 KB
- Stars: 22
- Watchers: 7
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Ebene-Rust
Ebene-Rust is a unique way of exploring Rust code, aiming to answer
questions like:- Which methods take a generic argument that implements the trait `Foo`?
- Do any structs contain a field called `data`?
- What statements come after a "TODO" comment?
- Are weird statements like `let Single { y }: Single<&'static u32>;` ever used?## How do I use it?
Right now, this project is very much in an alpha state. That's the
polite way of saying "it works on my machine, and probably no
other". I'm hoping to get it into a shape where it at least compiles
in CI soon.## Components
Ebene-Rust is a combination of many pieces of open source
technology. Some selected pieces include:### Ebene
[Ebene][] is the underlying search technology that powers the ability
to perform queries based on the structure of the data. These queries
are different from the traditional search engine inverted index and
are based around manipulating ranges of the indexed text known as
"extents".The Ebene crate works well on stable Rust.
[Ebene]: https://github.com/shepmaster/ebene
### Fuzzy Pickles
[Fuzzy Pickles][] is a Rust parser written in Rust, constructed with
the goal of expressing the level of detail needed to power the
underlying search technology.Fuzzy Pickles works well on stable Rust.
[Fuzzy Pickles]: https://github.com/shepmaster/fuzzy-pickles
### Web UI
Although the command line is a wonderful tool, building up the
complicated queries and showing the highlighted results works best in
a medium with more fidelity, such as the web. A [Rocket][] backend
powers a [React][] and [Redux][] frontend.Rocket requires **nightly** Rust.
[Rocket]: https://rocket.rs/
[React]: https://facebook.github.io/react/
[Redux]: http://redux.js.org/## Contribution opportunities
A project always has need for help from interested people!
### Introductory opportunities 🌟
These are things that anyone should be able to help with!
- Suggest some queries that might be answerable given the structure of
a Rust file. Ones that you have had in the Real World are preferred!
- Try to run the indexer and server on your own files.### Intermediate opportunities 🌟🌟🌟
These might require diving into the code a bit and adding new code or
changing existing code.- To be determined!
Please open up an issue to begin a dialog before starting if a feature
seems like it will require more than just a straight-forward addition!### Advanced opportunities 🌟🌟🌟🌟🌟
These are intense feature requests that probably require a good amount
of effort and *definitely* should be discussed in an issue before
beginning.- To be determined!
## License
ebene-rust is distributed under the terms of both the MIT license and
the Apache License (Version 2.0).## Authors
This crate was created by Jake Goulding of [Integer 32][].
[Integer 32]: http://www.integer32.com/