You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Assuming one uses e.g. rdkafka, this pulls in rdkafka-sys, which actually contains librdkafka (a C library).
There are a bunch of dependencies, which follow a -sys style pattern, adding C code to the Rust build. Such crates can sometimes by linked dynamically (re-using a system library), but sometimes they bring their own library.
In the case that such crates bring their own compiled version, I would expect to see the dependency on the SBOM too.
However, building a Rust application with this crate (using --all) I am not aware of the fact that this contains the code of librdkafka too:
$ cat bom.xml | grep kafka
<component type="library" bom-ref="pkg:cargo/rdkafka@0.29.0">
<name>rdkafka</name>
<description>Rust wrapper for librdkafka</description>
<purl>pkg:cargo/rdkafka@0.29.0</purl>
<url>https://github.com/fede1024/rust-rdkafka</url>
<component type="library" bom-ref="pkg:cargo/rdkafka-sys@4.3.0+1.9.2">
<name>rdkafka-sys</name>
<description>Native bindings to the librdkafka library</description>
<purl>pkg:cargo/rdkafka-sys@4.3.0+1.9.2</purl>
<url>rdkafka</url>
<url>https://github.com/fede1024/rust-rdkafka</url>
It might be hard to provide an automatic way to discover this, so I think it might make sense to have the following two features:
Be able to attach additional (extra) dependencies to the SBOM. This would allow the developer to manually provide such information. If that would be stored in a file, alongside the crate, that could also be automatically generated.
Propagate such information in the dependency tree. Maybe this can be added as part of the metadata of a crate, so after resolving cargo dependencies, all extra-dependencies get added to the final result as well.
The text was updated successfully, but these errors were encountered:
Assuming one uses e.g.
rdkafka
, this pulls inrdkafka-sys
, which actually containslibrdkafka
(a C library).There are a bunch of dependencies, which follow a
-sys
style pattern, adding C code to the Rust build. Such crates can sometimes by linked dynamically (re-using a system library), but sometimes they bring their own library.In the case that such crates bring their own compiled version, I would expect to see the dependency on the SBOM too.
However, building a Rust application with this crate (using
--all
) I am not aware of the fact that this contains the code oflibrdkafka
too:The
rdkafka-sys
dependecy looks like this:It might be hard to provide an automatic way to discover this, so I think it might make sense to have the following two features:
The text was updated successfully, but these errors were encountered: