4 releases
Uses new Rust 2024
0.3.3 | Apr 9, 2025 |
---|---|
0.3.2 | Apr 9, 2025 |
0.3.0 | Apr 8, 2025 |
0.2.4 | Apr 7, 2025 |
#652 in Database interfaces
384 downloads per month
Used in 3 crates
99KB
2.5K
SLoC
Moduforge
Moduforge是一个不含任何业务绑定的 计价编辑器默认实现,它可以通过扩展进行定制和扩展。 它的无业务绑定本质意味着它没有固定的业务约束,提供了完全的设计自由。可以根据业务需求进行定制。 设计思想是,通过扩展的方式与业务解耦,让编辑器可以支持任何业务,并且可以支持任何业务需求。
Moduforge是如何工作的?
-
工作方式: 定义基础节点和标记和约束,然后定义扩展添加行为。
-
core/model: 基础数据的定义,包括节点(Node),标记(Mark),约束(Schema)等。
-
core/state: 状态管理,主要负责状态的更新,插件的调度。
-
core/transform: 事务的实现,类似java 的DB事务。保证操作的原子性,保证数据的一致性。可以扩展最小的操作单元。
-
core/runtime: 组合model,state,transform 进一步实现编辑器的核心功能,添加并收集扩展.
-
Moduforge使用了哪些技术框架?
-
im: Moduforge编辑器使用im-rs进行基础数据定义,保证数据的不可变。
-
zen: Moduforge编辑器使用zen进行规则引擎管理,解除业务硬编码耦合。
Moduforge 框架设计思路
-
可扩展性: Moduforge设计为高度可扩展,允许开发者根据需求自定义编辑器的功能和行为。这包括插件系统,使得添加新功能变得简单,任何功能都可以扩展.例如:历史记录,撤销,重做。
-
模块化: 整个框架被分解成多个独立的模块,每个模块负责编辑器的一个特定方面,如模型、状态管理、命令执行等。这种设计使得开发者可以根据项目需求选择性地引入所需模块。
-
命令模式: 使用命令模式来处理编辑操作。每个编辑操作都被封装成一个命令对象,这样可以方便地撤销或重做操作,同时也有助于实现复杂的编辑逻辑。
-
状态管理: 编辑器的状态被集中管理,所有对文档的修改都会触发状态的变化。这种设计有助于保持数据的一致性和可预测性。
关于Moduforge
Moduforge,是基于当前计价软件延伸出来的,因此它与 计价 的业务无关,它只是 个大型的 的编辑器。
License
计价软件内部团队使用请勿泄露。
Dependencies
~9–18MB
~230K SLoC