您当前的位置:首页 > 电脑百科 > 程序开发 > 开源程序 > 百科

基于 Flutter 构建的高性能 Web 渲染引擎 Kraken

时间:2022-11-03 14:52:38  来源:今日头条  作者:GitHub精选

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个阿里开源基于 Flutter 进行渲染的高性能引擎——Kraken(北海)。

 

Kraken 是一款采用基于 Flutter 而实现的自绘渲染引擎。它使用 W3C 标准的 htmlcssJAVAScript,并支持通过 JavaScript 实现对画面的实时交互。

Kraken 基于 Flutter Rendering 层的实现进行了深度定制,在保留兼容 RenderObject API 的情况下,扩展出了兼容 W3C 标准的布局能力,并在此基础之上添加了 DOM,CSS 的解析处理,并对接 JavaScript 引擎,实现了一个类浏览器的技术架构

 

特性

  • Web 标准开发:Kraken 依据 W3C 标准提供渲染能力,提供浏览器中常见的标签、CSS 能力、API,让你使用前端生态构建原生应用。
  • 跨平台一致:基于 Flutter 的自绘渲染技术,不再受到平台能力制约,提供跨平台完全一致的 UI,同时支持桌面端 (macOS、linuxwindows) 和移动端 (IOSAndroid)等
  • 原生性能:使用 AOT 构建技术将 Kraken 编译成机器码,提供更接近原生的性能;同步光栅化,支持无限列表流畅滚动且没有白屏。

 

基础使用

Kraken 中实现了 W3C 标准的 HTML 标签与 CSS 样式,因此可以完全使用 Web 开发的方式来书写页面结构与样式。

搭建页面结构:

Kraken 支持大部分常用的标准 HTML 标签,使用这些标签可以帮我们搭建出页面的基本结构。以下例子演示了如何使用原生 HTML 标签写一个简单的博客文章结构:

<div>
  <div>Kraken 入门教程</div>
  <div>2021-1-1</div>
  <div>
    <img src="https://img.alicdn.com/imgextra/i4/O1CN01GIxaZ01V0isGFLuJQ_!!6000000002591-2-tps-400-339.png" />
  </div>
  <div>
    Kraken 是一款基于 W3C 标准的高性能渲染引擎。Kraken 底层基于 Flutter
    进行渲染,通过其自绘渲染的特性,保证多端一致性。上层基于 W3C
    标准实现,拥有非常庞大的前端开发者生态。
  </div>
</div>

添加样式:

Kraken 支持大部分常用的 CSS 样式,接下来我们继续在上面博客文章示例的 HTML 代码示例上添加样式:

为方便演示,代码示例中统一使用 React / Rax 支持的 JSX 语法来设置内联 style。

<div style={{ margin: '20px' }}>
  <div style={{ fontSize: '30px', margin: '10px 0' }}>Kraken 入门教程</div>
  <div style={{ fontSize: '14px', color: '#666' }}>2021-1-1</div>
  <div style={{ margin: '10px 0' }}>
    <img
      style={{ width: '100%' }}
      src="https://img.alicdn.com/imgextra/i4/O1CN01GIxaZ01V0isGFLuJQ_!!6000000002591-2-tps-400-339.png"
    />
  </div>
  <div style={{ fontSize: '16px' }}>
    Kraken 是一款基于 W3C 标准的高性能渲染引擎。Kraken 底层基于 Flutter
    进行渲染,通过其自绘渲染的特性,保证多端一致性。上层基于 W3C
    标准实现,拥有非常庞大的前端开发者生态。
  </div>
</div>

渲染效果:

 

进阶使用(使用 HTML 格式渲染)

Kraken 应用的入口是一个 JavaScript 文件,开发一个普通应用通常直接打出一个 JS bundle 或者是 bytecode 文件。考虑到前端 SSR 的场景,开发者往往需要通过服务端渲染等方式加快首屏的渲染速度,这时可以将入口改成 HTML 文件,以支持 SSR 渲染 Kraken 应用。

简单的例子:

<html>
  <head>
    <title>Kraken App</title>
  </head>
  <body>
    <div
      style="box-sizing: border-box; display: flex; flex-direction: column; flex-shrink: 0; align-content: flex-start; border-width: 0vw; border-style: solid; border-color: black; margin: 26.6667vw 0vw 0vw; padding: 0vw; min-width: 0vw; align-items: center;"
    >
      <img
        src="https://img.alicdn.com/imgextra/i1/O1CN01CUE2IL1FdAGnYPawX_!!6000000000509-2-tps-350-116.png"
        style="height: 24vw; margin-bottom: 2.6667vw;"
      />
      <span
        style="box-sizing: border-box; display: block; font-size: 6vw; white-space: pre-wrap; font-weight: bold; margin: 2.6667vw 0vw;"
        >Welcome to Your Kraken App</span
      >
      <span
        style="box-sizing: border-box; display: block; font-size: 4.8vw; white-space: pre-wrap; margin: 1.0667vw 0vw; color: rgb(85, 85, 85);"
        >More information about Kraken</span
      >
      <span
        style="box-sizing: border-box; display: block; font-size: 4.8vw; white-space: pre-wrap; margin: 1.0667vw 0vw; color: rgb(85, 85, 85);"
        >Visit http://openkraken.com/</span
      >
    </div>
    <script>
      console.log('eval JavaScript!');
    </script>
  </body>
</html>

渲染效果:

 

 

-END-

开源协议:Apache2.0

开源地址:
https://github.com/openkraken/kraken



Tags:Kraken   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
基于 Flutter 构建的高性能 Web 渲染引擎 Kraken
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个阿里开源基于 Flutter 进行渲染的高性能引擎&mda...【详细内容】
2022-11-03  Search: Kraken  点击:(371)  评论:(0)  加入收藏
Mac版跨平台的Git客户端
gitkraken是一款基于Electron构建的灵活实用的git图像化工具。gitkraken主要为程序员们提供了一个强大专业的git操作平台,具有绿色小巧,无需安装即可使用的优点,软件界面清爽简...【详细内容】
2020-01-13  Search: Kraken  点击:(453)  评论:(0)  加入收藏
▌简易百科推荐
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 &mdash;&mdash;star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  OSC开源社区    Tags:GitHub   点击:(25)  评论:(0)  加入收藏
一文读懂 AutoGPT 开源 AI Agents
Hello folks,我是 Luga,今天我们继续来聊一下人工智能(AI)生态领域相关的技术 - AutoGPT AI Agents ,本文将聚焦在针对不同类型的 AutoGPT 技术进行解析,使得大家能够了解不同 A...【详细内容】
2023-11-27  架构驿站  微信公众号  Tags:AI Agents   点击:(256)  评论:(0)  加入收藏
了解一下开源许可协议
开源许可协议开源许可协议是指允许软件源代码公开、免费获取、使用、修改和分发的许可协议。开源许可协议的目的是促进软件的自由共享和协作,使得开发者可以共同改进和创造新...【详细内容】
2023-11-18  沐雨花飞蝶  微信公众号  Tags:开源   点击:(217)  评论:(0)  加入收藏
七个很实用的开源项目,我们一起学学吧!
本周特推的两个项目都是异常实用的项目,一个接棒上周的视频重制项目 video-retalking 这次则是直接将视频替换成另外一个语种;另外一个则是解决日志阅读问题的 tailspin,让你在...【详细内容】
2023-11-06  HelloGitHub  微信公众号  Tags:开源   点击:(384)  评论:(0)  加入收藏
八个适合程序员接私活赚钱的开源项目
智慧团购一套基于Spring Cloud和Vue.js的社区团购配送系统,经过真实的用户检验且完善的社区团购配送系统,社区团购配送系统包含管理台、集团总店(商家PC端)、城市合伙人、区域...【详细内容】
2023-10-13  前端充电宝  微信公众号  Tags:开源项目   点击:(272)  评论:(0)  加入收藏
八个优秀开源DevOps工具
DevOps(Development和Operations)是一组软件工程过程最佳实践,并非工具,旨在将制造世界的精益概念应用于软件世界。维基百科给出的定义是:“DevOps是一种重视软件开发人员(Dev)和IT...【详细内容】
2023-10-10  andflow  微信公众号  Tags:DevOps   点击:(291)  评论:(0)  加入收藏
开源存在风险的根本原因
漏洞仍然是可以预防的几乎所有(96%)的漏洞仍然是可以避免的。2023年本可以避免21亿次具有已知漏洞的OSS下载,因为有了更好的修复版本&mdash;&mdash;与2022年的百分比完全相同...【详细内容】
2023-10-09     企业网D1Net  Tags:开源   点击:(300)  评论:(0)  加入收藏
中国14岁初中生,开源Windows 12网页版,star数近2k
出品 | OSC开源社区(ID:oschina2013)前几天在网上冲浪,发现名为「Windows 12 网页版」的开源项目&mdash;&mdash;在网页端实现了Windows 12 的交互和 UI。项目亮点: 精美的 UI 设...【详细内容】
2023-09-07    OSC开源社区  Tags:开源   点击:(249)  评论:(0)  加入收藏
苹果开源FastViT:快速卷积Transformer的混合视觉架构
苹果此前在论文《FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization》中提出的 FastViT 架构已正式开源。论文地址:https://arxiv.org/pdf/23...【详细内容】
2023-08-16  OSC开源社区    Tags:FastViT   点击:(320)  评论:(0)  加入收藏
金融机构使用开源软件,有哪些潜在风险?
面对新技术,无法逃避,只有先行和后行,没有不执行。本文来自社区文章《论述金融机构使用开源软件的潜在风险》及对该文的评论交流,由社区同行分享,也欢迎大家参与探讨。@朱向东 中...【详细内容】
2023-08-14    IT168企业级  Tags:开源软件   点击:(280)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条