2 个不稳定版本

0.2.0 2024年3月21日
0.1.0 2023年7月31日

454网络编程 中排名

Download history 354/week @ 2024-04-01 169/week @ 2024-04-08 176/week @ 2024-04-15 130/week @ 2024-04-22 69/week @ 2024-04-29 29/week @ 2024-05-06 19/week @ 2024-05-13 7/week @ 2024-05-20 19/week @ 2024-05-27 72/week @ 2024-06-03 35/week @ 2024-06-10 46/week @ 2024-06-17 55/week @ 2024-06-24 4/week @ 2024-07-01 77/week @ 2024-07-08 107/week @ 2024-07-15

每月 243 次下载

Apache-2.0

335KB
7K SLoC

这是什么?

Rust 封装了 Bumble Python API。

方法调用映射到等效的 Python,并在相关情况下调整返回类型。

请参阅 src/main.rs 中的 CLI 或 examples 目录中的示例,了解如何使用 Bumble API。

用法

为 Bumble 设置一个虚拟环境,或确保有一个独立的 Python 环境,用于 Bumble 及其依赖项。

由于 Python 对其 sys path 的设置很挑剔(见 https://github.com/PyO3/pyo3/issues/1741),因此需要显式地指向虚拟环境的 site-packages。根据您的操作系统,使用适当的虚拟环境路径,如下所示,在运行 battery_client 示例时

PYTHONPATH=..:~/.virtualenvs/bumble/lib/python3.10/site-packages/ \
    cargo run --example battery_client -- \
    --transport android-netsim --target-addr F0:F1:F2:F3:F4:F5

运行相应的 battery_server Python 示例,并在 Android Studio 中启动模拟器(目前需要 Canary)以运行 netsim。

CLI

探索可用的子命令

PYTHONPATH=..:[virtualenv site-packages] \
    cargo run --features bumble-tools --bin bumble -- --help

值得注意的子命令

  • firmware realtek download:下载各种芯片组的 Realtek 固件,以便在需要时自动加载
  • usb probe:显示 USB 设备,突出显示可用于蓝牙的设备

开发

运行测试

PYTHONPATH=.. cargo test

检查 lint

cargo clippy --all-targets

代码生成

为了在保持构建简单的同时获得最快的启动速度,使用 gen_assigned_numbers 工具对分配的数字进行代码生成。当 Python 分配数字更改时,应重新运行它。为了确保生成的代码保持最新,在 pytests/assigned_numbers.rs 中的测试中将 Rust 数据与 Python 进行比较。

根据 Python 代码库重新生成基于分配数字的表

PYTHONPATH=.. cargo run --bin gen-assigned-numbers --features dev-tools

依赖关系

~11–25MB
~373K SLoC