diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 747e152fb2..5d06aaa482 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -53,4 +53,22 @@ jobs:
- name: Typo Check
uses: crate-ci/typos@v1.29.4
with:
- files: ./rust
\ No newline at end of file
+ files: ./rust
+
+ # Check licensing and produce a list of licenses
+ licensing:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install cargo-about
+ uses: baptiste0928/cargo-install@v3
+ with:
+ crate: cargo-about
+ version: "0.6.6"
+ - name: Run license check
+ run: cargo about generate about.hbs > license.html
+ - name: Archive license file
+ uses: actions/upload-artifact@v4
+ with:
+ name: license
+ path: license.html
\ No newline at end of file
diff --git a/about.hbs b/about.hbs
new file mode 100644
index 0000000000..9091a2a7c3
--- /dev/null
+++ b/about.hbs
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
Third Party Licenses
+
This page lists the licenses of the **rust** projects used in binaryninja-api.
+
+
+ Overview of licenses:
+
+ {{#each overview}}
+ - {{name}} ({{count}})
+ {{/each}}
+
+
+ All license text:
+
+ {{#each licenses}}
+ -
+
{{name}}
+ Used by:
+
+ {{text}}
+
+ {{/each}}
+
+
+
+
+
\ No newline at end of file
diff --git a/about.toml b/about.toml
new file mode 100644
index 0000000000..aaf511f8a3
--- /dev/null
+++ b/about.toml
@@ -0,0 +1,10 @@
+accepted = [
+ "Apache-2.0",
+ "MIT",
+ "Unicode-DFS-2016",
+ "Unicode-3.0",
+ "ISC",
+ "BSD-3-Clause",
+ "BSL-1.0",
+ "LicenseRef-scancode-google-patent-license-fuchsia"
+]
\ No newline at end of file
diff --git a/arch/msp430/Cargo.toml b/arch/msp430/Cargo.toml
index ddc442e8aa..03940cd873 100644
--- a/arch/msp430/Cargo.toml
+++ b/arch/msp430/Cargo.toml
@@ -3,6 +3,7 @@ name = "arch_msp430"
version = "0.1.0"
authors = ["jrozner"]
edition = "2021"
+license = "Apache-2.0"
[dependencies]
binaryninja.workspace = true
diff --git a/arch/riscv/Cargo.toml b/arch/riscv/Cargo.toml
index 1c0979e918..a90000dd0b 100644
--- a/arch/riscv/Cargo.toml
+++ b/arch/riscv/Cargo.toml
@@ -3,6 +3,7 @@ name = "arch_riscv"
version = "0.1.0"
authors = ["Ryan Snyder "]
edition = "2021"
+license = "Apache-2.0"
[dependencies]
binaryninja.workspace = true
diff --git a/arch/riscv/disasm/Cargo.toml b/arch/riscv/disasm/Cargo.toml
index a799dc180a..f1e52d4901 100644
--- a/arch/riscv/disasm/Cargo.toml
+++ b/arch/riscv/disasm/Cargo.toml
@@ -3,6 +3,7 @@ name = "riscv-dis"
version = "0.1.0"
authors = ["Ryan Snyder "]
edition = "2021"
+license = "Apache-2.0"
[dependencies]
byteorder = "1"
diff --git a/plugins/dwarf/dwarf_export/Cargo.toml b/plugins/dwarf/dwarf_export/Cargo.toml
index a3d0e75b32..570626f60e 100644
--- a/plugins/dwarf/dwarf_export/Cargo.toml
+++ b/plugins/dwarf/dwarf_export/Cargo.toml
@@ -2,6 +2,7 @@
name = "dwarf_export"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]
diff --git a/plugins/dwarf/dwarf_import/Cargo.toml b/plugins/dwarf/dwarf_import/Cargo.toml
index 52f89a4699..9527274a24 100644
--- a/plugins/dwarf/dwarf_import/Cargo.toml
+++ b/plugins/dwarf/dwarf_import/Cargo.toml
@@ -2,6 +2,7 @@
name = "dwarf_import"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]
diff --git a/plugins/dwarf/dwarfdump/Cargo.toml b/plugins/dwarf/dwarfdump/Cargo.toml
index a58e2e33a9..cd13206a1b 100644
--- a/plugins/dwarf/dwarfdump/Cargo.toml
+++ b/plugins/dwarf/dwarfdump/Cargo.toml
@@ -3,6 +3,7 @@ name = "dwarfdump"
version = "0.1.0"
authors = ["Kyle Martin "]
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]
diff --git a/plugins/dwarf/shared/Cargo.toml b/plugins/dwarf/shared/Cargo.toml
index 2e2ee51e20..83ecee936b 100644
--- a/plugins/dwarf/shared/Cargo.toml
+++ b/plugins/dwarf/shared/Cargo.toml
@@ -3,6 +3,7 @@ name = "dwarfreader"
version = "0.1.0"
authors = ["Kyle Martin "]
edition = "2021"
+license = "Apache-2.0"
[dependencies]
binaryninja.workspace = true
diff --git a/plugins/idb_import/Cargo.toml b/plugins/idb_import/Cargo.toml
index 1871df6e3c..db41d40a83 100644
--- a/plugins/idb_import/Cargo.toml
+++ b/plugins/idb_import/Cargo.toml
@@ -3,6 +3,7 @@ name = "idb_import"
version = "0.1.0"
authors = ["Rubens Brandao "]
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]
diff --git a/plugins/pdb-ng/Cargo.toml b/plugins/pdb-ng/Cargo.toml
index d431fd649f..3a9017d5cf 100644
--- a/plugins/pdb-ng/Cargo.toml
+++ b/plugins/pdb-ng/Cargo.toml
@@ -2,6 +2,7 @@
name = "pdb-import-plugin"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]
diff --git a/plugins/pdb-ng/demo/Cargo.toml b/plugins/pdb-ng/demo/Cargo.toml
index 02a645d0d9..ddde9b9464 100644
--- a/plugins/pdb-ng/demo/Cargo.toml
+++ b/plugins/pdb-ng/demo/Cargo.toml
@@ -2,6 +2,7 @@
name = "pdb-import-plugin-static"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["staticlib"]
diff --git a/plugins/warp/Cargo.toml b/plugins/warp/Cargo.toml
index e7634075b5..07e0a4de07 100644
--- a/plugins/warp/Cargo.toml
+++ b/plugins/warp/Cargo.toml
@@ -2,6 +2,7 @@
name = "warp_ninja"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["lib", "cdylib"]
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index 29170b6d1b..361b2057a6 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -4,6 +4,7 @@ version = "0.1.0"
authors = ["Ryan Snyder ", "Kyle Martin "]
edition = "2021"
rust-version = "1.83.0"
+license = "Apache-2.0"
[features]
# This is used when statically linking to prevent exporting CorePluginABIVersion and UiPluginABIVersion.
diff --git a/rust/binaryninjacore-sys/Cargo.toml b/rust/binaryninjacore-sys/Cargo.toml
index 3c72600aa6..bfd49a4170 100644
--- a/rust/binaryninjacore-sys/Cargo.toml
+++ b/rust/binaryninjacore-sys/Cargo.toml
@@ -5,6 +5,7 @@ authors = ["Ryan Snyder ", "Kyle Martin "]
build = "build.rs"
edition = "2021"
links = "binaryninjacore"
+license = "Apache-2.0"
[build-dependencies]
bindgen = "0.71.1"
diff --git a/view/minidump/Cargo.toml b/view/minidump/Cargo.toml
index 276080b4ca..aa1ff40ec0 100644
--- a/view/minidump/Cargo.toml
+++ b/view/minidump/Cargo.toml
@@ -2,6 +2,7 @@
name = "minidump_bn"
version = "0.1.0"
edition = "2021"
+license = "Apache-2.0"
[lib]
crate-type = ["cdylib"]