写点什么

TikTok 原生跨平台 UI 框架 Lynx 宣布开源

  • 2025-04-05
    北京
  • 本文字数:1346 字

    阅读完需:约 4 分钟

TikTok 原生跨平台 UI 框架 Lynx 宣布开源

字节跳动宣布开源 Lynx 框架,这是一套支持使用 Web 标记语言、CSS 和 JavaScript 创建原生跨平台移动应用的开发工具集合。该框架通过自主研发的 JavaScript 引擎和像素级精准的 UI 渲染能力,实现原生级别的性能表现。


Lynx 架构师 Xuan Huang 解释称,Lynx 受 Chromium、Flutter 和 React Native 启发,意在通过应对日益复杂的设备形态差异和多平台支持需求,实现规模化且更高效的原生级体验。这些需求导致了“反复重建功能相同的模块,从而造成资源浪费、团队协作割裂,以及产品上市时间的延误”。


Lynx 框架延续了相似的设计理念——“专为应用开发定制的替代性 Web 方案”。该框架在继承 Web 技术优势的同时,采取了强约束策略:既支持类 Web API 接口,又通过施加特定限制与扩展来实现明确的设计意图。


为实现这一目标,Lynx 采用标记语言与 CSS 语法,让 Web 开发者得以进行移动应用开发。框架原生支持 CSS 动画与过渡效果、CSS 选择器与主题变量配置,以及渐变、遮罩、裁剪等现代 CSS 视觉效果。


在架构层面,Lynx 突破了传统 Web 单线程模型的限制,通过静态强制实施的双线程架构模型进行革新:主线程专用于处理高优先级的同步非阻塞任务,后台线程则负责执行用户代码。据 Huang 介绍,这种架构设计使得 Lynx 能够近乎即时地渲染应用的首帧界面,大幅优化"首帧渲染时间(TTFF)"指标,同时也通过在主线程高效处理高优先级事件与手势操作,确保界面交互的高响应度。


Lynx 框架由多个组件构成,其中包括:Lynx 核心引擎;基于 React 的声明式 UI 前端框架 ReactLynx;采用 Rust 语言构建的、基于 webpack 兼容的 Rspack 开发的高性能打包工具 Rspeedy;优化版 JavaScript 引擎 PrimJS;以及基于 Electron 的调试工具 Lynx DevTool。该框架还提供了 Web 前端适配层,支持在浏览器环境中运行 Lynx 应用。


在 Syntax FM 的技术播客中,字节跳动工程师 Zack Jackson 将 Lynx 定位为公司内部的 React 替代方案,这套框架驱动着其他所有应用程序的 UI 层,以确保跨团队技术架构的统一性。不过 Huang 在官方声明中特别强调,Lynx 并不局限于 React 技术栈,未来还会逐步开源其他前端方案。


目前该框架已应用于 TikTok 应用内的搜索框,以及专为创作者打造的内容生产和管理工具 TikTok Studio 等多个业务场景。


Hacker News 上自称就职于字节的用户 suzakus 透露,iOS 与安卓客户端中最重要的跨平台功能模块采用 C++ 编写以实现跨平台的可移植性,而其他包括大部分的 UI 组件仍使用 Kotlin 或 Swift 开发。这一技术现状虽看似与应用中 Lynx 框架的普及程度存在反差,但却是与 Huang 此前描述的渐进式演进路线相吻合。


此外,Huang 也在 Hacker News 的评论区回应了为何字节选择与现存最古老的命令行网页浏览器 重名:


Lynx 项目最初命名时并未考虑长远影响。鉴于已有大量代码库和用户依赖现有名称,我们决定保持原名,不因项目的开源而更名。


最后,Huang 强调说,字节跳动将持续推进 Lynx 框架的开源进程,未来将陆续公开更多 UI 组件、定制化渲染引擎及其他前端框架。该框架还将突破移动端限制,逐步扩展至桌面端、电视以及 IoT 设备等更多平台。


查看英文原文

TikTok’s Native Cross-Platform UI Framework Lynx Goes Open Source(https://www.infoq.com/news/2025/03/tiktok-lynx-cross-platform-apps/)

2025-04-05 10:008937

评论

发布
暂无评论

专为开发者和AI爱好者设计的工具 LM Studio for Mac您的本地 AI 工具包

Rose

透明LED广告屏租赁价格:探究成本

Dylan

广告 LED LED display LED显示屏 LED屏幕

鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

幽蓝计划

VMware VeloCloud SD-WAN 6.4 - 领先的 SD-WAN 解决方案

sysin

velocloud

AI 全栈开发实战营 - 第三章

9527

我离职了,聊聊职场、大学、友情和爱情:人不能两次踏入同一条河流,生命只能倒着被理解,但却必须正着被经历

码哥字节

#职场思考

【每天学点‘音视频’】GOP-关键帧间隔

小曾同学.com

ffmpeg 实时音视频 GOP B帧

Guitar Pro为什么被称为吉他编曲的绝佳软件?Guitar Pro编曲教程

阿拉灯神丁

吉他学习 吉他谱 编曲软件 Guitar Pro8 音乐创作

React源码阅读(2)-fiber核心构建原理

溪抱鱼

【HarmonyOS 5】桌面快捷方式功能实现详解

GeorgeGcs

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

AI Agent驱动下的金融智能化:技术实现与行业影响

申公豹

AI Agent

时序数据库 TimechoDB V2.0.4 发布 | 新增用户自定义表函数及多种内置表函数等功能

Apache IoTDB

2025 AICon上海站

IT蜗壳-Tango

吃透Java基础面试八股文

Geek_Yin

Java 程序员 java面试 Java面试题

不是拿着源码过来,就能二开,还需要注意这些

程序员郭顺发

用 10 个 AI 工具创建独立开发团队

俞凡

人工智能

2025北京智源大会闭幕|黄铁军:构建物理智能体,具身智能目标是星辰大海

智源研究院

HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖

王二蛋和他的张大花

鸿蒙

Zerto 10.0 Update 7 - 适用于本地、混合和多云环境的灾难恢复和数据保护

sysin

Zerto

详解鸿蒙Next仓颉开发语言中的动画

幽蓝计划

吉他初学者如何自学吉他?Guitar Pro如何辅助新手掌握复杂的吉他弹奏技巧

阿拉灯神丁

吉他学习 编曲软件 Guitar Pro8 Mac乐谱制作软件 乐谱软件

Go 语言中的 Hot Path 优化:高性能优化实践指南

异常君

Go 高并发 高性能 优化

时序数据库 IoTDB 官方可视化平台 Workbench,一文全面了解!

Apache IoTDB

三天吃透Java并发面试八股文

Geek_Yin

编程 程序员 java面试 Java面试题

低代码不是炫技,而是回归需求的必然答案

伤感汤姆布利柏

AI编码工具:面向现代开发者的分层指南

俞凡

人工智能

【重磅】JimuReport 积木报表 v2.0 版本发布

JEECG低代码

GitHub 数据可视化 免费报表 开源版本

MAZDA EZ-60领衔 长安马自达多款新车型亮相2025重庆车展

极客天地

通义灵码2.5 | 一个更懂开发者的 AI 编程助手

六月的雨在InfoQ

MCP Server AI 编程 通义灵码2.5 编程助手

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

王二蛋和他的张大花

鸿蒙 os

基于YOLOv8的河道垃圾塑料瓶子识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

TikTok 原生跨平台 UI 框架 Lynx 宣布开源_架构_Sergio De Simone_InfoQ精选文章