computer 3.2.1 icon indicating copy to clipboard operation
computer: ^3.2.1 copied to clipboard

Easy to use pool of concurrent workers with compute() like API.

Computer #

Computer is a lightweight library for concurrent computations, which provides Flutter's compute like API.

Features #

  • Easy to use API
  • No overhead on creating & releasing isolates for each task. Workers initialized on start and ready to solve your tasks
  • Strictly defined number of workers

Note #

Computer.shared() is a singleton, use Computer.create() to create new instances

How to use #

Computer provides just 3 methods

turnOn() #

Before using the Computer you need to turnOn it. This will create workers and initialize them. Then you may use compute() method.

final computer = Computer.create(); //Or Computer.shared()

await computer.turnOn(
  workersCount: 4, // optional, default 2
  verbose: false, // optional, default false
);

compute() #

compute will execute your function inside one of the workers. Function may be async. The callback argument must be a top-level or static method of a class.

final result = await computer.compute(
  fib,
  param: 45, // optional
);

turnOff() #

If you don't need workers anymore, you can turnOff the Computer. It will destroy workers.

await computer.turnOff();

Errors #

ComputerError the parent error for all errors/exceptions in this package

class ComputerError implements Exception {
  final String message;
}

RemoteExecutionError shows up when something goes wrong in task

class RemoteExecutionError extends ComputerError {
  final Capability taskCapability;
}

CancelExecutionError shows up when turnOff is called but task is processing

class CancelExecutionError extends ComputerError {
  final Capability taskCapability;
}
56
likes
140
pub points
86%
popularity

Publisher

unverified uploader

Easy to use pool of concurrent workers with compute() like API.

Repository (GitHub)

Documentation

API reference

License

Icon for licenses.MIT (LICENSE)

More

Packages that depend on computer