【GitHub每日速递 20260114】Dioxus 0.7发布!单代码库搞定多平台开发,特色功能大揭秘!

原文: https://mp.weixin.qq.com/s/DMTBCuGKCdgasGf7HpyC3w
Dioxus 0.7发布!单代码库搞定多平台开发,特色功能大揭秘!
[dioxus] 是一个支持全栈开发的跨平台应用框架。简单讲,它用Rust语言让你一套代码同时运行在网页、桌面和移动端。适用人群:Rust开发者及全栈工程师
项目地址:https://github.com/DioxusLabs/dioxus
主要语言:Rust
stars: 33.5k

仓库概述
Dioxus 是一个用于构建跨平台应用程序的框架,支持使用单一代码库构建适用于 Web、桌面、移动等多种平台的应用。它具有零配置设置、集成热重载和基于信号的状态管理等特性,还可以通过 Server Functions 添加后端功能,并使用其 CLI 进行打包。
核心功能
- 跨平台开发:只需少量代码,就能开发出支持 Web、桌面、移动、服务器等多平台的应用。
- 高效的状态管理:结合了 React、Solid 和 Svelte 的优点,提供符合人体工程学的状态管理方案。
- 全栈 Web 框架:内置功能丰富、类型安全的全栈 Web 框架。
- 集成打包工具:可将应用部署到 Web、macOS、Linux 和 Windows 等平台,且具备最大化优化功能。
- 快速热更新:支持亚秒级的 Rust 热补丁和资产热重载。
独特优势
- 即时热重载:使用
dx serve命令即可启动应用,修改标记和样式后能在毫秒级看到变化,还可通过dx serve --hotpatch实时更新 Rust 代码。 - 美观的应用构建:支持使用 HTML 和 CSS 进行样式设计,内置 TailwindCSS 支持,也可加载其他 CSS 库,还能轻松调用原生代码。
- 全栈应用支持:与 axum 深度集成,为客户端和服务器提供强大的全栈功能,还提供多种内置功能。
- 实验性原生渲染器:支持多种渲染方式,如 web - sys、webview、服务器端渲染等,甚至可以使用基于 WGPU 的渲染器,还能嵌入到 Bevy、WGPU 或在嵌入式 Linux 上运行。
- 丰富的原生组件:提供一套完整的原生组件,模仿 shadcn/ui 和 Radix - Primitives,方便快速开发。
- 一流的移动支持:是使用 Rust 构建原生移动应用的最快方式,可快速在模拟器或设备上运行应用,并能直接调用 JNI 和原生 API。
- 高效打包:使用
dx bundle命令可对应用进行构建和打包,在 Web 上可实现多种优化,能构建出体积较小的应用。 - 优质的文档:文档清晰、易读且全面,所有 HTML 元素和监听器都有 MDN 文档说明,并且会持续更新。
- 模块化和可定制性:可以构建自己的渲染器,也可使用社区渲染器,如 Freya,还提供多个模块化组件。
支持的平台
- Web:可直接使用 WebAssembly 渲染到 DOM,支持服务器端预渲染和客户端重新水化,“Hello World” 应用体积约 50kb,内置开发服务器和热重载功能。
- 桌面:可使用 Webview 或实验性的 WGPU、Freya 进行渲染,零配置,支持直接访问原生系统,支持 macOS、Linux 和 Windows,二进制文件体积小于 3mb。
- 移动:可使用 Webview 或实验性的 WGPU、Skia 进行渲染,能构建 iOS 和 Android 的应用文件,可直接调用 Java 和 Objective - C,能快速在设备上运行应用。
- 服务器端渲染:支持 Suspense、水化和服务器端渲染,可快速添加后端功能,支持提取器、中间件和路由集成,以及静态网站生成和增量再生。
运行示例
- 主分支的示例可使用
cargo run --example <example>运行。 - 推荐使用 dioxus - cli 测试热重载等功能,可通过
cargo binstall dioxus - cli@0.7.0 --force安装最新二进制 CLI,若 CLI 过时,可使用cargo install --git https://github.com/DioxusLabs/dioxus dioxus - cli --locked从 git 安装。 - 使用 CLI 运行 Web 平台示例时,需使用
dx serve --example <example> --platform web -- --no - default - features命令。
MediaCrawler 来袭!多平台自媒体数据采集神器,Pro版功能大升级!
[MediaCrawler] 是一个支持多平台内容抓取的网络爬虫工具。简单讲,它能自动采集小红书、抖音、快手、B站、微博、贴吧、知乎等平台的笔记、视频、帖子及其评论内容,方便用户进行数据收集与分析。适用人群:数据分析师、市场研究人员、自媒体运营者及Python开发爱好者。
项目地址:https://github.com/NanmiCoder/MediaCrawler
主要语言:Python
stars: 42.1k

项目概述
MediaCrawler 是一个功能强大的多平台自媒体数据采集工具,支持小红书、抖音、快手、B站、微博、贴吧、知乎等主流平台的公开信息抓取。该项目基于 Playwright 浏览器自动化框架,无需 JS 逆向,利用保留登录态的浏览器上下文环境,通过 JS 表达式获取签名参数,大幅降低了技术门槛。
技术原理
- 核心技术:基于 Playwright 浏览器自动化框架登录保存登录态。
- 无需 JS 逆向:利用保留登录态的浏览器上下文环境,通过 JS 表达式获取签名参数。
- 优势特点:无需逆向复杂的加密算法,大幅降低技术门槛。
功能特性
支持多个主流自媒体平台,且各平台均具备以下功能:
- 关键词搜索
- 指定帖子 ID 爬取
- 二级评论爬取
- 指定创作者主页数据采集
- 登录态缓存
- IP 代理池
- 生成评论词云图
Pro 版本优势
- 核心功能升级:具备断点续爬功能、多账号 + IP 代理池支持、去除 Playwright 依赖、完整 Linux 环境支持。
- 架构设计优化:代码重构优化,更易读易维护;企业级代码质量,适合构建大型爬虫项目;完美架构设计,高扩展性,源码学习价值更大。
- 额外功能:自媒体视频下载器桌面端、多平台首页信息流推荐,基于自媒体平台的 AI Agent 正在开发中。
快速开始
前置依赖
- uv 安装:推荐使用 uv 作为 Python 包管理工具,需确保电脑已安装,可通过
uv --version验证。 - Node.js 安装:项目依赖 Node.js,版本要求 >= 16.0.0。
- Python 包安装:进入项目目录后,使用
uv sync命令保证 Python 版本和相关依赖包的一致性。 - 浏览器驱动安装:使用
uv run playwright install安装浏览器驱动。
运行爬虫程序
可通过以下命令从配置文件中读取关键词搜索相关的帖子并爬取帖子信息与评论,或读取指定的帖子 ID 列表获取指定帖子的信息与评论信息:
uv run main.py --platform xhs --lt qrcode --type search
uv run main.py --platform xhs --lt qrcode --type detail
执行 uv run main.py --help 可查看其他平台爬虫使用示例。
WebUI 支持
提供基于 Web 的可视化操作界面,无需命令行即可使用爬虫功能。启动 API 服务器(默认端口 8080)后,访问 http://localhost:8080 即可打开 WebUI 界面。其功能特性包括可视化配置爬虫参数、实时查看爬虫运行状态和日志、数据预览和导出。
数据保存
支持多种数据存储方式,包括 CSV、JSON、Excel、SQLite 和 MySQL 数据库,详细使用说明可查看 数据存储指南。

浙公网安备 33010602011771号