Rebuild the UI to use web technologies for easier embedding
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- java, typescript
- Domain
- desktop, frontend, reverse-engineering
Research direction
Start by reviewing the existing Java UI and the bindiff executable workflow, including how IDA Pro and Binary Ninja currently use the standalone UI. Done would require a TypeScript web UI using D3.js and Canvas, a server launched by bindiff, and a browser or embedded web view suitable for the disassemblers.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem? Please describe.
- The Java UI is dated and requires a proprietary graph visualization libray
- BinDiff native plugins for IDA Pro and binary Ninja cannot embedd a high-quality graph view
- The current workflow with the standalone UI is cumbersome and few people actually use "BinDiff Workspaces".
Describe the solution you'd like
- Implement a UI using Typescript and web technologies. D3.js with the DAG layouter should be able to support the flow graph use cases and render to Canvas.
- Have the
bindiffexecutable launch a server for this and either embed a web view in the disassemblers or show the browser.
Describe alternatives you've considered
- Gephi
- Extracting the graphing library from Ghidra
- Implementing a new desktop UI in Qt
Additional context
This should eventually become a "GitHub Project".
- Dominant language
- Java
- Stars
- 3.2k
- Forks
- 240
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from google/bindiff
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
question
Difficulty 3/5 1-2 days Newbie friendliness 42/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 1/5 Under an hour Newbie friendliness 55/100
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
elastic/gradle-plugins#157 ·
-
enhancement Tools
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
apache/rocketmq-dashboard#5008 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
DETECT_PARAMETER_NAMES=false silently disables @ConstructorProperties-based Creator detection too Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
FasterXML/jackson-databind#6229 ·