Parapet 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Parapet 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache
开发语言: Scala 查看源码 »
操作系统: 跨平台
收录时间: 2019-08-14
提 交 者: 红薯

Parapet 是一个用来构建分布式事件驱动系统的纯功能库。

编写分布式系统是一项具有挑战性的任务,这在逻辑上可分为两个主要方面:实现分布式算法并运行它们,这不是秘密。 Parapet扮演分布式算法执行框架的角色 - 它可以被视为低级效果库和以DSL形式公开的高级操作之间的中间层。主要专注于设计和实现分布式算法的分布式工程师不需要担心IO等低级抽象,或者对某些计算机科学主题有一定的深入了解,例如并发。他们需要知道的是库满足的属性以及它提供的保证。另一方面,专门编写低级库的工程师可以专注于实现IO或Task等核心抽象,从而进行性能优化和实现新功能。 Parapet是模块化库,几乎所有组件都可以用自定义实现替换。

关键特性:

  • 使用Tagless-Final Style和Free Monads以scala编写的纯函数库; 精心设计的人更喜欢功能风格而不是命令式
  • 模块化 - 几乎任何组件都可以用自定义实现替换
  • DSL提供了一组足以编写分布式算法的操作
  • 轻巧,高效。 该库巧妙地利用资源(CPU和内存),优化代码以减少应用程序处于空闲状态时的CPU消耗
  • 内置支持以下效果库:Cats Effect,Monix和Scalaz ZIO。 该库可以扩展为支持其他效果库:Cats Effect,Monix和Scalaz ZIO

示例代码:

import io.parapet.core.{Event, Process}
 
class Printer[F[_]] extends Process[F] {
 
  import Printer._ //  import Printer API
 
  import dsl._ // import DSL operations
 
  override def handle: Receive = {
    case Print(data) => eval(println(data))
  }
}
 
object Printer {
 
  case class Print(data: Any) extends Event
 
}

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Parapet 的相关资讯

还没有任何资讯

Parapet 的相关博客

还没有任何博客,写博客

Parapet 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
38 收藏
分享
返回顶部
顶部