Vector35 / Vector35/binaryninja-api
Persistent data notifications from Rust API
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Current state of data notifications in Rust API:
The custom is of type DataNotificationHandle which is defined as:
This means that we are holding a strong reference to the view (for the purposes of dropping the data notification when custom is dropped) which inhibits the ability to leak the custom handle to persist the data notifications, we need to address this somehow to make using data notifications in Rust API more user friendly and less of a footgun.
One idea would be to provide an alternate register API that does not return a handle containing a strong reference to the view, or instead hold a weak reference to the view (but that is very difficult to do).
See this example for a motivating reason.
Contributor guide
No contributing guide indexed for this repository
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.
Research direction
Start with rust/tests/data_notification.rs#L16-L33 and rust/src/data_notification.rs#L414-L421 to understand how DataNotificationHandle retains the view, then review the linked motivating example. Define and test a persistent-notification approach that avoids the current strong-reference limitation while preserving safe cleanup behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100