@ fluidframework/ 容器运行时间
使用 Fluid 框架库
对于依赖流体框架库的公共API,我们建议 ^ (caret)版本范围.
例如,使用 ^1.3.4。 。 。 .
依赖不稳定的API,例如: beta API,我们推荐一个更具限制性的版本范围.
例如,使用一个 ~ 版本范围.
安装
运行此命令以安装软件包 :
npm i @fluidframework/container-runtime
从此软件包导入
此软件包使用 packet.json 导出 通过支持级别将API分离. 有关支助保障的信息改为: API 支持级别。 。 。 .
导入 public API 从 @fluidframework/container-runtime。 。 。 .
导入 legacy API 从 @fluidframework/container-runtime/legacy。 。 。 .
API 文档
读取 @ fluidframework/ 容器运行时间 API 文档 https://fluidframework.com/docs/apis/container-runtime (中文(简体) )。 。 。 .
DataStores 数据虚拟化( 进展中的工作)
它能够将一些内容排除在初始快照之外(在装入容器时使用),从而改进靴子 容器的性能。 被排除在外的内容可以在以后需要时被加载.
数据虚拟化动机
本节讲述了系统在"数据"虚拟化之前曾如何工作. 目前,整个文件的内容 下载一次。 由于数据虚拟化的限制,FF将所有blobs作为快照,可能就是 未来需要。 任何延迟加载( 通过FF APIs) 会导致数据存储的加载状态 通过应用该数据存储的未决操作,从我们启动的快照数,直到当前序列号. 虽然应用程序可能选择不立即装入一些数据存储(并及时实现一些保存) fF通过不为此类数据存储器分配适当的应用状态,仍然为此类内容支付费用。 还有 继续无限期地支付所有这些内容的费用,即使这些数据存储器被装入.
数据虚拟化改进
因此,我们将提供以下能力:
- 将一些子树排除在快照有效载荷之外,从而可以更快地传输时间/靴子时间并缩短初始时间 记忆足迹.
- 日后延迟装入数据存储的能力.
容器运行时间 Apis 如 IContainerRundtimeBase. CreateDataStore 和 IContainerRundtimeBase. ContainDetachedDataStore
提供论据 loadingGroupId 它允许应用程序在目前创建时标记一个数据存储器。 每个数据
存储被指定了组ID。 不提供组ID(on API),意味着默认的ID被使用. 此组代表
容器或其快照中的数据存储组。 初始装入容器时,只存储数据
属于默认组的,从服务中获取,在用户提出要求时可以按要求加载。 减少额
(a) 装载时需要取取的数据数量,从而为集装箱提供更快的启动时间.
试图在非默认组内加载任何数据存储器, 会导致获取标记相同的所有内容/数据存储器
团体。 因此,当一个用户请求一个组的数据存储器时,需要一个网络来获取一个组的内容
应用.
在高级应用情景中,基于如何装入一个特定组 Id ,应用会想制作一个数据存储器
某些组一次,而不加载不属于组的数据存储器. 通过有效使用组ID, app
可以通过不获取不必要的组装来改善启动时间.
因此总结一下,当数据存储器被分配到一个组时,这种数据存储的内容将不会被加载到初始负载中
集装箱。 只有在任何带有此组ID的数据存储实现时才会加载.
这会改善穿靴子。 数据虚拟化或提供 loadingGroupId 不过,将减少
在装入之前,需要将这些数据存储器装入一个网络。 不过,
规定相同 loadingGroupId 将一些数据存储放入同一组,将提高其装入的性能
相对于提供不同的组 每一个数据存储器都使用 Id,届时将需要一个网络呼叫
获取该类数据存储的快照, 而不是每个数据存储的网络调用 。 所以,数据存储器
可以在相当大的大小内容上明智,并且不需要装入靴子,就可以置于非默认状态
团体.
客户最低要求
Fluid框架客户端库支持此文档中的平台. 这些要求有意具有限制性. 在一个主要的版本系列中,我们可以放松这些要求,但我们不能使其更严格. 对于长期支持(LTS)版本,我们可能需要支持这些平台几年.
其他配置可以奏效,但Fluid框架不支持. 如果一个不支持的配置停止工作, 我们不会将此归类为错误 . 要请求支持未列出的配置, 请存档 . 产品组会评估你的要求. 在此问题上,请具体说明配置的现状:
- 配置有效但需要官方支持.
- 配置不起作用,需要更改.
支持的运行时间
- Fluid框架支持节点.js版本22和24同时收到 上游支助。 。 。 .
- 流体框架将停止支持第22版 当上游支持于2027-04-30结束时。 。 。 .
- 流体框架不支持节点.js与
--no-experimental-fetch旗帜.
- Fluid框架支持支持ES2022标准库的现代浏览器.
支持的工具
- 类型脚本 6.0数字 :
- 流体框架支持全部
strict选项. - 设定建设目标(
lib, (中文(简体) ),target改为:ES2022或后会. - 启用
strictNullChecks。 。 。 . - 流体框架不支持 在 TypeScript 6.0 中贬值的配置选项。 。 。 .
- 流体框架不完全支持
exactOptionalPropertyTypes。 。 。 . 如果您启用此选项, 请不要使用in, (中文(简体) ),Reflect.has, (中文(简体) ),Object.hasOwn,或Object.prototype.hasOwnProperty改为Fluid框架类型的窄成员. 这些方法可以错误地排除undefined从可能的值.
- 流体框架支持全部
- 网络软件包 页:1
- 我们不需要一个特定的捆绑者. 其他处理ES模块的捆绑机可以工作,但我们只积极测试网页包.
模块分辨率
在类型脚本中 compilerOptions,使用时 Node16, (中文(简体) ), Node20, (中文(简体) ), NodeNext,或 Bundler 模块分辨率.
这些设置遵循 节点.js v12+无害环境管理 分辨率和加载算法。 。 。 .
不使用 Node10 模块分辨率.
模块格式
- ES模块: 使用ES模块来消耗Fluid框架客户端软件包,包括在Node.js中.
- 常见JS : Fluid Framework在3.0版本或后期不正式支持CommonJS.
贡献准则
你们可以 贡献 通过这些方式实现流体框架:
详细指示改为: repo 文档。 。 。 .
本项目遵循 Microsoft 开源行为守则。 。 。 . 更多信息,改为: 《行为守则》经常被问到的问题。 。 。 . 问题或评论,联系 打开码@ microsoft.com。 。 。 .
这个项目可能包含微软项目的商标或标志,产品,或服务. 这些商标或标志的使用必须遵循微软 商标和品牌准则。 。 。 . 在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.
帮助
读取 流体框架文件 用于了解流体框架概念和API.
要求提供文件未载列的资料, 创建问题。 。 。 .
商标
这个项目可能包含微软项目的商标或标志,产品,或服务.
这些商标或标志的使用必须遵循微软的 商标和品牌准则。 。 。 .
在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助.