2个版本

0.1.0 2023年2月16日
0.1.0-alpha.02023年1月30日

19 in #upstream

MIT许可证

6.5MB
132K SLoC

C++ 100K SLoC // 0.2% comments Python 12K SLoC // 0.3% comments Rust 10K SLoC // 0.0% comments Cython 7K SLoC // 0.6% comments Forge Config 1K SLoC // 0.8% comments Bazel 728 SLoC // 0.1% comments Jupyter Notebooks 722 SLoC // 0.5% comments Perl 504 SLoC // 0.2% comments Shell 332 SLoC // 0.2% comments Assembly 271 SLoC // 0.3% comments JavaScript 135 SLoC Batch 7 SLoC

NetworKit-rs

Crates.io

这是NetworKit的Rust封装,NetworKit是一个用于大规模网络分析的工具包。

API与上游包的Python API相似。

这仍然是一个正在进行中的工作,因此不完全。如果您需要一些不可用的函数,请打开一个issue。

安全问题

上游库大部分时间不检查越界数组访问,当给出越界索引作为参数时,会导致未定义的行为。这在C++代码和官方Python封装中都会发生。对于当前的Rust封装,纠正所有使用情况是不切实际的(尽管我们尝试在某些使用情况下修补它)。因此,您必须确保在您的代码中索引有效,即使是在调用未标记为unsafe的函数时。

此外,上游C++库可能会抛出异常,目前Rust端还没有处理这些异常(因为抛出的异常太多了,目前必须手动处理每一个)。因此,对于其中一些异常,Rust代码将直接panic。如果您遇到此类问题,请打开一个issue。

由于上述问题,不建议将此库用于面向用户的程序。在经过充分测试的环境中内部使用,并且每个输入都经过验证,可能没问题。

依赖项

~1.2–3MB
~44K SLoC