summaryrefslogtreecommitdiff
path: root/rust/README.md
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2021-01-21 18:35:20 +0000
committerKyleMiles <krm504@nyu.edu>2021-01-21 19:07:07 +0000
commit2fcacc55d5466a7d17bdc0b3ce988772aa6d0653 (patch)
tree9d0f2ba19117843575936f2b93e0b6a578a84dc8 /rust/README.md
parenta0da07c5c2860a5bd69921d38e438bbc1d43912f (diff)
cargo fmt and all my changes
Diffstat (limited to 'rust/README.md')
-rw-r--r--rust/README.md67
1 files changed, 67 insertions, 0 deletions
diff --git a/rust/README.md b/rust/README.md
new file mode 100644
index 00000000..8fca9c07
--- /dev/null
+++ b/rust/README.md
@@ -0,0 +1,67 @@
+# BinaryNinja-rs
+
+> :warning: **These bindings are in a very early beta, only have partial support for the core APIs and are still actively under development. Compatibility _will_ break and conventions _will_ change! They are being used for core Binary Ninja features however, so we expect much of what is already there to be reliable enough to build on, just don't be surprised if your plugins/scripts need to hit a moving target.**
+
+## Dependencies
+
+Having BinaryNinja installed (and your license registered)
+Clang
+
+## How to use
+
+### To write a plugin:
+
+`Cargo.toml`:
+```
+[lib]
+crate-type = ["cdylib"]
+
+[dependencies]
+binaryninja = {git = "https://github.com/Vector35/binaryninja-api.git", branch = "dev"}
+
+```
+
+`src/main.rs`:
+See the `./examples/`
+
+### To write a headless script
+
+`Cargo.toml`:
+```
+[dependencies]
+binaryninja = { git = "https://github.com/Vector35/binaryninja-api.git", branch = "dev", features = ["headless"] }
+
+```
+
+`src/main.rs`:
+```
+use binaryninja::version;
+
+fn main() {
+ println!("BinaryNinja Version: `{}`", version());
+}
+```
+
+## Contributing
+
+If you want to advance the binaryninjacore.h reference, simply change the commit ID in `build.rs`
+
+## WIP : TODO
+
+ - Logging needs to be redone
+ - Update libc requirement on binaryninja::
+ - Rename `section_by_name` to `get_section_by_name` and similar
+many other todos are still scattered in the codebase
+
+---
+
+#### Attribution
+
+This project makes use of:
+ - [log] ([log license] - MIT)
+ - [rayon] ([rayon license] - MIT)
+
+[log]: https://github.com/rust-lang/log
+[log license]: https://github.com/rust-lang/log/blob/master/LICENSE-MIT
+[rayon]: https://github.com/rayon-rs/rayon
+[rayon license]: https://github.com/rayon-rs/rayon/blob/master/LICENSE-MIT