搜索插件、代码仓与 APP 分类

GitHub 代码仓gaaclarke/agents

代理

一个方便地封装隔离区、端口和状态的 Dart 包,便于使用隔离区。

代理 项目封面
星标
85
复刻
6
最近推送(UTC)
2024年6月23日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

Isolate Agents

Description

Isolate Agents adds a new class, Agent, which is a proper implementation of the Actor model for Dart. Where Isolates have no mechanism for communication, Agents do. It is inspired by Clojure's agents.

Example usage

import 'package:isolate_agents/isolate_agents.dart';

void main() async {
  Agent<int> agent = await Agent.create(() => 1);
  // The following add operation is executed in the Agent's isolate.
  agent.update((int x) => x + 1);
  assert(2 == await agent.exit());
}

Why?

After writing Dart code for a couple of years I realized I was writing the same code over and over again in order to be able to use Isolates. Isolates don't fully implement the Actor model so a handshake of SendPort and a protocol needs to be devised for each non-trivial usage of Isolates. Agents factor all that logic into a reusable package, eliminating the SendPort handshake and standardizing the protocol.

gaaclarke GitHub avatar
GitHub 作者

gaaclarke ↗

Seattle, WA
语言Dart

此仓库发布的插件

使用的依赖

依赖清单 2 项

  • lints开发依赖^2.0.0
  • test开发依赖^1.16.5

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗