Flying Carpet 开发架构指南:三端共线协议、Noise 加密与 v10 共享网络模式解析
即时通讯安全【免费下载链接】FlyingCarpetCross-platform AirDrop. File transfer between Android, iOS, Linux, macOS, and Windows over ad hoc WiFi. No network infrastructure required, just two devices with WiFi chips (and optionally Bluetooth) in close range.项目地址https://gitcode.com/gh_mirrors/fl/FlyingCarpet点击查看免费下载Flying Carpet 是一个跨平台Android、iOS、Linux、macOS、Windows的类 AirDrop文件传输工具支持在无互联网、无网络基础设施的前提下通过临时 WiFi 热点或两台设备共处的既有网络完成加密传输。本篇技术指南以仓库根目录的 CLAUDE.md 为主体结合 Rust 核心、KotlinAndroid与 SwiftApple三套独立实现的源码与测试系统讲解其三套实现、一个线协议的架构设计、构建测试方法、v10 安全不变量Noise 加密、Preamble→Prologue 绑定、一次性 CSPRNG 密码以及仓库约定与陷阱读完你将掌握该仓库的代码布局、跨平台互操作验证机制以及修改协议时必须三端同步的底层原因。一、项目定位五平台、两种传输模式、统一端口 3290Flying Carpet 提供端到端加密、无需互联网的文件传输覆盖Android、iOS、Linux、macOS、Windows五大平台。传输方式有两种见 CLAUDE.md 开头描述Hotspot 模式热点模式一台设备创建临时 WiFi 热点另一台加入若双方都支持蓝牙则通过蓝牙自动交换热点凭证需确认配对码否则由主机显示密码及二维码供加入方输入。Shared Network 模式共享网络模式v10 新增两台设备直接使用双方已在的既有网络WiFi 或有线皆可甚至手机 WiFi 对桌面有线无需创建热点密码由接收方生成并显示发送方手动输入或扫码。两种模式全程统一使用端口 3290TCP 传输 UDP 发现均在此端口。v10 是一个破坏性版本v10 设备无法与 v9 及更早版本互传会得到明确的版本不匹配提示因此所有参与互传的设备都必须升级到 v10。这一干净断裂的版本策略由核心代码中的MAJOR_VERSION 10与 utils.rs 的is_compatible(peer_version) - peer_version 10落实。二、三套实现、一个线协议核心架构原则这是整个仓库最重要的架构事实五大平台对应三套相互独立的线协议实现任何对线上字节格式的改动发现报文、版本/模式 Preamble、Noise 握手、记录分帧都是一次破坏性变更除非在另外两套实现中同步修改否则跨端互传立刻失效。实现位置角色说明Rustcore/参考实现其余两套以其为测试基准同时交付 Windows Linux 桌面端Tauri 应用位于Flying Carpet/KotlinAndroid/FlyingCarpet/Android 端独立移植非 Rust 绑定SwiftApple/iOS macOS完整移植而非 Rust core 的绑定只能在 Mac 上构建源码上最直观的证据是core/src/下只有windows/和linux/两个平台目录而 lib.rs 用cfg_attr(target_os ...)仅在 Windows/Linux 两个target_os值上选择network/bluetooth模块整个core/中不存在target_os macos——macOS 由Apple/下的 Swift 应用独立承担两者不共享任何代码。修改 Tauri/wry/webkit2gtk相关内容只影响两个桌面平台Windows/Linux而非三个。触碰协议时必须三端同步的测试保障仓库用**跨平台已知答案测试KAT**把三套实现钉在同一字节序列上Rust 端core/src/noise.rs 中的official_noise_test_vector对照官方 cacophony 向量、psk_known_answer、discovery_key_known_answer、handshake_known_answer、prologue_known_answer发现报文向量见 core/src/discovery.rs 的test_cross_platform_vector。Kotlin 端对应的 NoiseUnitTest.kt 与 DiscoveryUnitTest.kt。Swift 端Apple/macOS/FlyingCarpetTests/FlyingCarpetTests.swift中的NoiseTests含同样的 cacophony 向量与 §9 应用级 KAT。需要注意Swift 的 KAT 只能在 Mac 上通过xcodebuild运行所以cargo test与./gradlew test全部通过并不代表Swift 侧仍然一致——这是 CLAUDE.md 明确提示的验证盲区。三、代码位置与二进制交付两者不可混为一谈仓库强调Rust 代码只构建 Windows/Linux这一事实与存在 macOS 二进制之间的区别macOS 二进制以.zip打包的.app形式发布macOS_FlyingCarpet_version.zip并非.dmg.dmg在 v8.0.1 结束v9.0.0 起改用.zip它由Apple/macOS/构建与core/无关。Homebrew 的caskbrew install flying-carpet在仓库外维护。tauri.conf.json中仍列有icons/icon.icns——这是故意保留的过期项不是 macOS 支持的证据。Swift 代码源自独立的FlyingCarpetApple仓库在 v10 发布时无历史导入因此git log对Apple/只从导入提交开始旧文档中引用的 Swift 提交哈希如 docs/bluetooth-field-guide.md 中的4c59af6、ARCHITECTURE.md 中的4a6b889/b7e9b59属于原仓库在当前仓库中无法解析。四、仓库布局速览目录内容core/Rust 核心 crateflying-carpet-corev10。平台拆分在core/src/{windows,linux}/bluetooth模块按 OS 由lib.rs中的cfg选择。关键文件lib.rsstart_transfer入口、discovery.rs、noise.rs、sending.rs/receiving.rsFlying Carpet/Tauri 桌面应用。Rust 后端在Flying Carpet/src-tauri/workspace 成员JS/HTML 前端在Flying Carpet/src/main.js、index.html。注意目录名含空格Shell 命令中需加引号Android/FlyingCarpet/Android 应用Kotlin。Noise/discovery 移植在app/src/main/java/dev/spiegl/flyingcarpet/Apple/iOS macOS 应用Swift。协议代码两平台共用位于Apple/shared/平台 UI 分别在Apple/iOS/与Apple/macOS/。改动其下任何内容前必须先读Apple/CLAUDE.mdApple 平台有独特约束无法编程创建热点故 Apple↔Apple 必须走共享网络模式BLE 无法配对 iPhone↔Macdocs/设计文档ARCHITECTURE.md描述连接角色模型五、构建与测试Rust 是一个 CargoworkspacecoreFlying Carpet/src-tauri根 Cargo.toml 使用resolver 2并将依赖在 dev 构建中也设为opt-level 3——注释明确说明snow的 ChaCha20-Poly1305 在opt-level 0下慢约 20 倍会拖慢开发构建的传输吞吐并伪装成线上问题。1. Rust 核心与桌面端cargo test # 运行全部 Rust 测试含 noise.rs / discovery.rs 中的已知答案向量 cargo build # 编译 cargo tauri dev # 运行开发版桌面应用 cargo tauri build # 构建发布产物桌面端需要 Tauri CLI 及 README.md 中列出的 Linux 依赖Ubuntu 20 示例sudo apt install libsoup2.4* libjavascriptcoregtk* libgdk-pixbuf2.0* librust-pango-sys-dev libgdk3.0* librust-atk-dev librust-atk-sys-dev librust-gdk* libwebkit2gtk* librsvg2-dev。2. Android# 在 Android/FlyingCarpet/ 目录下 ./gradlew assembleDebug # 构建 APK ./gradlew test # 运行单元测试NoiseUnitTest、DiscoveryUnitTest 等必须将JAVA_HOME设为 Android Studio 自带的 JBR捆绑 JDK否则 Gradle 会失败。3. Apple仅 macOS且不在 Cargo workspace 内# 在 Apple/ 目录下 DEVELOPER_DIR/Applications/Xcode.app/Contents/Developer xcodebuild \ -project iOS|macOS/FlyingCarpet.xcodeproj -scheme FlyingCarpet build两个项目的DEVELOPMENT_TEAM均为空因此在 Xcode 中设置自己的 team 或传入DEVELOPMENT_TEAMYOURTEAMID之前签名会失败。cargo build永远不会触碰 Apple 代码。4. 端到端加密传输测试lib.rs 中的end_to_end_encrypted_transfer测试把真实的send_file/receive_file跑在基于内存 duplex 流的 NoiseEncryptedStream之上用超过 64 KiB 的文件覆盖多个 Noise 记录验证握手、加密元数据、分块传输与逐字节文件一致性——这正是逻辑传输协议不变、只换加密传输层设计的直接证据。六、承重不变量Load-bearing InvariantsCLAUDE.md 明确列出四条**不许简化**的安全不变量它们决定了对密码学与协议层做任何改动的边界。以下逐一结合源码展开。1. v10 NoiseNoise 是唯一加密层v10 起每一次传输两种模式皆然都要完成一次Noise_NNpsk0_25519_ChaChaPoly_SHA256握手PSK 由密码经PBKDF2-HMAC-SHA256(password, saltFlying Carpet v10 shared network PSK, 600_000)拉伸得到。Noise 是唯一的密码原语——旧的逐块内层 AES 已移除v10 与 v9 是完全断裂的关系v9 对端会被拒绝。若 v10 之后还有新的 Noise 线协议变更必须升到 v11。源码对应关系core/src/noise.rs 定义了NOISE_PARAMS、PSK_SALT、PBKDF2_ITERS 600_000、DISCOVERY_INFO四个必须三端字节一致的常量derive_psk()用pbkdf2_hmac::Sha256完成 PSK 派生core/src/noise.rshandshake()基于snowcrate 构建 initiator/respondercore/src/noise.rs错误密码或篡改连接都会得到统一提示Could not establish a secure connection. Check that the password matches on both devices. (This can also mean the connection was tampered with.)EncryptedStreamS实现 tokio 的AsyncRead AsyncWrite把字节流透明地切分成 ≤64 KiB 的 Noise 记录上限 65535 字节含 16 字节 AEAD 标签因此 sending.rs / receiving.rs 中既有的发送/接收逻辑无需改动即可跑在加密流上lib.rs 中的TransferStream枚举代表PlainPreamble 阶段到Encrypted握手后的切换。Kotlin 侧是手写的NNpsk0对称状态与握手Noise.kt由于minSdk 29/ Java 8 的限制rweather/noise-java 只实现 2018 年以前的废弃 PSK 方案、jchambers/java-noise 又需要 Java 17 与 Android API 34 才有的 JCAX25519因此 Android 只在Curve25519.java从 noise-java 精简的纯 Java X25519 实现MIT 许可这一处依赖外部文件其余ChaCha20-Poly1305、HMAC-SHA256、PBKDF2全部使用 JCA。Swift 侧则按仅使用 Apple 标准密码库约束在 Apple/shared/Noise.swift 中用 CryptoKitCurve25519.KeyAgreement、ChaChaPoly、SHA-256/HMAC加 CommonCryptoPBKDF2手写实现同样的握手与记录层。2. Preamble → Prologue 绑定版本与收发模式在明文 Preamble中协商以便干净地报告版本不匹配随后 Preamble 的每一个字节都被绑定进 Noise prologue。配对双方必须以完全相同的方式构造 prologuebuild_prologue/buildPrologue构造规则为prologue u64_be(len(T_i)) || T_i || u64_be(len(T_r)) || T_r其中T_i是 Noise发起方在 Preamble 期间发送的每个字节T_r是响应方发送的每个字节发起方按我发的我收到的计算响应方按我收到的我发的计算未篡改时两边得到相同字节长度前缀保证编码无歧义。实现上Rust 用流边界包装器RecordingStream在 Preamble 阶段逐字节记录收发内容core/src/noise.rsKotlin 用RecordingInputStream/RecordingOutputStreamNoise.ktSwift 用RecordingTCPConnectionNoise.swift——在流边界记录而不是在 Preamble 函数内部记录保证协商的任何分支都不会漏掉字节。按 Noise 规范prologue 只进入h只门控握手消息 MAC不进入链密钥因此Preamble 可读但不可静默篡改对版本/模式交换的中间人篡改会使两侧 prologue 不同握手必然失败。这一点由各端的prologue_mismatch_fails_handshake负向测试守护并且PROLOGUE_RECORD_HEX与TRANSPORT_RECORD_HEX故意相同断言实现没有错误地把 prologue 混入ck。3. 密码一次性 CSPRNG接收方为每次传输用 CSPRNG 生成全新随机密码并展示绝不复用、绝不用户自选、绝不记住。整个离线破解毫无价值的安全论证详见 docs/shared-network-crypto.md 第 7 节都建立在这条不变量上。源码实现见 core/src/utils.rs 的generate_password()字符集为去掉易混淆字符的 57 符号集23456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ长度 10约 2⁵⁸ 的密码空间——注释指出这个长度足以使针对固定 PBKDF2 salt 的整空间预计算表在计算与存储约 EB 级上均不可行该函数需与 Android 和 Apple 保持一致。桌面端通过 Tauri commandgenerate_password暴露给前端见 main.rs。另外发现报文的 HMAC 密钥也由拉伸后的 PSK 派生derive_discovery_key(psk) HMAC-SHA256(psk, Flying Carpet v10 discovery)见 core/src/noise.rs因此线路上永远不会出现密码的快速哈希SHA256(password)仅残存于热点 SSID 的 2 字节标签与共享网络模式无关。Kotlin 对应实现为deriveDiscoveryKeyNoise.kt。4. 蓝牙仅限 Hotspot 模式共享网络模式的密码交换是手动的显示 输入/扫码不要为共享网络模式重新引入 BLE。原因记录在 ARCHITECTURE.md 的 Bluetooth Shared Network Mode 一节唯一真正需要共享模式 BLE 的是 Apple↔Apple 配对Apple 设备无法编程创建热点被迫使用共享模式而 iPhone↔Mac 恰恰无法完成 BLE 配对Apple 设计上不允许两者建立经典蓝牙配对Flying Carpet 的 GATT 特征又要求加密绑定连接因此该需求在动机最强烈的配对上行不通其余能做到 BLE 的配对几乎也都能用热点模式。所有平台在共享网络模式下都会置灰其蓝牙开关Apple 端经由bluetoothSwitchShouldBeEnabled()条件为capable connectionMode .hotspot实现这是为了修复仅按硬件能力恢复开关导致传输后开关又被重新启用的回归。Rust 核心中的强制逻辑见 lib.rsusing_bluetooth using_bluetooth connection_mode ConnectionMode::Hotspot。5. 接收方是锚点两种模式下接收方生成密码并充当 TCP 服务器Noise 响应方发送方是 TCP 客户端Noise 发起方。这与热点模式接收方即主机的平台内约定一致见 ARCHITECTURE.md 的共享网络模式章节。在共享网络模式下接收方会在发现开始之前先绑定0.0.0.0:3290的 TCP 监听lib.rs发送方发现接收方后最多重试 15 次、每次间隔 2 秒连接与 Apple 实现一致lib.rs。七、共享网络模式与发现机制补充源码细节由于 v10 新增的共享网络模式值得单独说明其发现机制这是 docs/shared-network-crypto.md 与 core/src/discovery.rs 共同描述的内容双方同时用 UDP组播239.255.73.67:3290与单播子网扫描发送 HMAC 签名的公告并监听对端公告每 500ms 一轮DISCOVERY_INTERVAL_MS。公告为固定 93 字节ANNOUNCEMENT_SIZE由421442843232的编译期断言保证字段含 magicFCAP、版本、角色0发送方1接收方、IPv4、端口、时间戳、序号、32 字节随机 nonce 与 32 字节 HMACdiscovery.rs。接收方校验magic、HMAC用密码派生密钥、时间戳窗口±60 秒、角色必须相反发送方角色在收到有效公告后解析出接收方 IP接收方角色的完成信号则是发送方的 TCP 连接本身避免 UDP 单向可达时的死锁。子网扫描在prefix_len 30或 0时退化/31、/32 无其他主机子网过大超过MAX_UNICAST_SCAN_HOSTS 1024主机时仅靠组播。发现公告的 HMAC 由拉伸后的 PSK派生见上文第六节第 3 条使一个被捕获的公告对离线攻击者而言每次猜测都要付出 60 万次 PBKDF2 迭代与握手消息的 oracle 成本一致。TCP 之上则统一走明文 Preamble版本 模式→ Noise 握手 → 加密记录层两种模式在 Preamble 之后完全一致。八、威胁模型与残余缺口理解设计意图的关键docs/shared-network-crypto.md 第 7 节给出了完整的安全属性表核心结论可概括为被动窃听者同网段、恶意运营商读不到任何内容只能对 PBKDF2 加固的离线密码破解发起徒劳尝试得益于临时 X25519 密钥的前向保密即使将来破解成功也解不开任何已发生的传输。主动中间人能被检测无法静默坐在中间读明文但完成一次与受害者的握手后会获得一个对密码的离线字典攻击机会。明确不在范围流量体积与时序每条加密记录的长度前缀明文可见Preamble 的明文可见但不可篡改已绑定进 prologue。残余的PBKDF2 加固密码 oracle发现公告与第一条握手消息的 AEAD 标签之所以在实践中无利可图靠的正是两条承重不变量密码一次性破解耗时远超单次传输的存活窗口与CSPRNG 生成破解过去的密码无助于预测未来加上前向保密恢复密码也解不开已记录流量。这就是为什么 CLAUDE.md 把不要复用密码、不要用户自选、不要记住称为模式的安全不变量而非 UI 便利。九、约定与陷阱Conventions Gotchas最后是仓库内明确的工程约定改代码前必须遵守Android改动 UI 时需保持res/layout/与res/layout-land/同步。core/Cargo.toml固定为LF行尾由.gitattributes保证不要让编辑器改写为 CRLF。头部值边界与文件名净化文件数MAX_FILE_COUNT 1_000_000见 lib.rs、文件名长度MAX_FILENAME_BYTES 8192、块大小MAX_CHUNK_BYTES 5_000_000等合理性检查以及sanitize_relative_filename拒绝..、根路径、盘符前缀等危险组件见 receiving.rs都作用于从 Noise 解密后的数据流而非原始 socket——因为 v10 中块内容以明文原始字节出现在记录层内完整性由 Noise 的 AEAD 标签保证但防内存耗尽的边界检查仍必须保留。发送端分块大小为 1 MBCHUNKSIZElib.rs而 Apple 与 Android 发送端使用 5 MB 块边界值选取保证所有合法传输都能通过。十、总结改协议前必读清单综合 CLAUDE.md 与源码对任何计划改动本仓库协议层、密码学层或连接建立的开发者最直接的行动清单是触碰连接建立、托管逻辑或 BLE 前先读 ARCHITECTURE.md四个独立角色轴传输方向 / BLE 外设-中心 / 热点主机-加入方 / TCP 服务端-客户端。触碰任何密码学、发现认证或记录/分帧层前先读 docs/shared-network-crypto.mdv10 密码学设计的规范性参考含握手字节。触碰任何平台的 BLE 代码前先读 docs/bluetooth-field-guide.md四个独立轴、七条来之不易的经验法则、平台矩阵与症状→原因排查手册历史调查日志见 docs/windows-ble-gatt-0x8000ffff.md 与 docs/ble-bond-asymmetries.md。改动线协议后三端实现Rust/Kotlin/Swift与其跨平台 KAT 必须一起更新并记住 Swift KAT 只能在 Mac 上验证。这样一套参考实现 两套移植 共享已知答案向量的架构使得一个 macOS 发送端可以和一个 Android 接收端互传每一端都在自己的单元测试里断言同一组字节向量任何标签、端序或密钥调度上的偏差都会在最早期暴露而不是在真机互传时才以握手失败、原因不明的形式出现。赞分享即时通讯安全【免费下载链接】FlyingCarpetCross-platform AirDrop. File transfer between Android, iOS, Linux, macOS, and Windows over ad hoc WiFi. No network infrastructure required, just two devices with WiFi chips (and optionally Bluetooth) in close range.项目地址https://gitcode.com/gh_mirrors/fl/FlyingCarpet点击查看免费下载相关推荐Flying Carpet v10 共享网络模式加密设计全解析基于 Noise NNpsk0 的密码认证临时密钥交换Flying Carpet v10 共享网络模式加密设计全解析基于 Noise NNpsk0 的密码认证临时密钥交换 本篇文章以 docs/shared ne即时通讯安全slopus/happy-wire 线协议包解析Happy 客户端与服务端共享的加密会话消息契约slopus/happy wire 线协议包解析Happy 客户端与服务端共享的加密会话消息契约 导读 slopus/happy wire 是 Happy人工智能AI AgentAI 应用移动开发CLI后端Fluxer API 开发者指南协议面、共享契约与端点发现全解析Fluxer API 开发者指南协议面、共享契约与端点发现全解析 Fluxer 是一个可自托管self hostable的开源即时通讯与 VoIP 聊天平上一篇告别臃肿控制台3分钟掌握惠普暗影精灵笔记本性能调校新方案下一篇Hugo 中 hugo.WorkingDir 详解模板内获取项目工作目录的实现原理与实战用法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Bisq 可复现发布构建(Reproducible Release Builds)完全指南:从证据生成、A/B 对比到签名验证

Bisq 可复现发布构建(Reproducible Release Builds)完全指南:从证据生成、A/B 对比到签名验证

区块链DeFi金融科技 【免费下载链接】bisq A decentralized bitcoin exchange network 项目地址: https://gitcode.com/gh_mirrors/bi/bisq 点击查看 免费下载 Bisq(一个去中心化比特币交易网络,仓库根目录见 README.md)在 docs/…

2026/10/13 6:34:48 阅读更多 →
使用 xquad 的区间整数域构建投资组合再平衡(Portfolio Rebalance)模型

使用 xquad 的区间整数域构建投资组合再平衡(Portfolio Rebalance)模型

【免费下载链接】xquad A rust implementation of the Quip Networks quantum virtual machine. 项目地址: https://gitcode.com/gh_mirrors/xq/xquad 点击查看 免费下载 本文以 xquad 仓库中的 Portfolio Rebalance 示例 为主线,讲解如何用 XQCP 约束编…

2026/10/13 6:33:48 阅读更多 →
PS5新手到进阶:初始化、SSD扩容与散热维护全攻略

PS5新手到进阶:初始化、SSD扩容与散热维护全攻略

如果你手里正好有一台PS5,或者正打算入坑这台主机,那“AnyPS5”这个标题应该会让你有点好奇:什么叫Any?其实拆开理解很简单,Any就是“任何一台、任何一个场景、任何一类玩家”都适用的意思。不管你是刚拆封的新手、纠结…

2026/10/13 6:33:48 阅读更多 →

最新新闻

Win7离线OCR工具:PaddleOCR-json免Python部署实战

Win7离线OCR工具:PaddleOCR-json免Python部署实战

简介:win7-x64-PaddleOCR-json.zip是面向Windows 7 64位系统的PaddleOCR部署压缩包,适用于需要在旧版平台快速搭建文字识别能力、并通过JSON格式获取结构化结果的开发者和运维人员。包内共64个文件,总体积约126.19MB。其中dll动态库用于支撑推…

2026/10/13 7:13:58 阅读更多 →
AI应用上下文管理实战:分层压缩方案详解

AI应用上下文管理实战:分层压缩方案详解

我做过一个内部的智能客服项目,上线三个月后收到最多的用户反馈不是"回答不准",而是"它怎么又把我说过的话忘了"。用户在第十分钟重新提起自己五分钟前强调过的产品型号时,模型一本正经地给出了另一款产品的介绍。查日志…

2026/10/13 7:13:58 阅读更多 →
LSTM+Attention时序预测实战:从原理到PyTorch落地

LSTM+Attention时序预测实战:从原理到PyTorch落地

1. 从"预测"这个词说起:为什么LSTM加Attention成了时序任务里的常驻组合做时序预测的人大概都有过这样的经历:拿到一批带时间戳的数据,第一反应是上ARIMA或者简单移动平均,跑出来的结果在平稳段看着还行,一到…

2026/10/13 7:13:58 阅读更多 →
扣子3.0零代码搭建AI智能体:工作流与多Agent协作实战

扣子3.0零代码搭建AI智能体:工作流与多Agent协作实战

扣子 3.0 这个版本,最核心的变化就是把“搭建 AI 智能体”这件事,从写代码变成了搭积木。你不需要懂 Python,不需要本地显卡,打开浏览器登录就能开始做。这篇文章会带你从零开始,走完一个完整的智能体搭建流程&#xf…

2026/10/13 7:13:58 阅读更多 →
HuggingFace英译中模型迁移ONNX:导出、推理与量化部署全攻略

HuggingFace英译中模型迁移ONNX:导出、推理与量化部署全攻略

最近把一个托管在 HuggingFace 上的英译中模型真正搬进了生产环境,折腾了一阵子之后,总算把完整的导出、推理、优化流程打通了。这篇内容就是从那个项目里整理出来的,全程聚焦一件事:如何把一个 HuggingFace 上的英译中模型迁移到…

2026/10/13 7:13:58 阅读更多 →
零基础AI漫剧量产:12模块工业化流水线实战

零基础AI漫剧量产:12模块工业化流水线实战

1. 这不是“AI绘画课”,而是一套可批量交付的漫剧工业化流水线“零基础 AI 漫剧智能量产创作营”——光看标题,很多人第一反应是:又一个教Stable Diffusion换脸、用Runway生成动图的速成班?我最初也这么想。直到去年参与某高校数字…

2026/10/13 7:12:57 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →