snakemake_bridge 0.1.0 copy "snakemake_bridge: ^0.1.0" to clipboard
snakemake_bridge: ^0.1.0 copied to clipboard

Embed a real-time Snakemake workflow monitor in a Dart desktop app: WebSocket server, typed event models, state reducer and process launcher.

snakemake_bridge (Dart) #

Módulo para embarcar um monitor de workflows Snakemake numa aplicação Dart Desktop. Contraparte do plugin Python snakemake-logger-plugin-dart. Arquitetura e protocolo: ARCHITECTURE.md.

Instalação #

dependencies:
  snakemake_bridge: ^0.1.0

Conteúdo #

Arquivo Papel
lib/src/workflow_server.dart Servidor WebSocket embarcado (shelf), bind em 127.0.0.1, valida token, deduplica por seq, pede replay a cada reconexão.
lib/src/workflow_events.dart Modelos tipados dos eventos (sealed classes, sem codegen; tipos desconhecidos viram UnknownEvent).
lib/src/workflow_state.dart Reducer: stream de eventos → estado consultável do run (jobs, progresso, DAG, logs, erros).
lib/src/snakemake_runner.dart Lança e é dono do processo snakemake (cancelamento = SIGTERM).
example/snakemake_bridge_example.dart "App" headless mínimo para testar a ponte pelo terminal.

Uso no app #

final token = WorkflowServer.generateToken();
final server = WorkflowServer(token: token);
await server.start();

final state = WorkflowRunState();
server.events.listen((event) {
  if (state.apply(event)) notifyUi(); // ChangeNotifier / Riverpod / Bloc
});

final runner = await SnakemakeRunner.start(
  workflowDir: '/caminho/do/workflow',
  serverPort: server.boundPort,
  token: token,
);
// cancelar: await runner.cancel();
// desfecho: await runner.exitCode;

Teste rápido sem Snakemake #

SNAKEMAKE_LOGGER_DART_TOKEN=dev dart run example/snakemake_bridge_example.dart
# em outro terminal, rode o Snakemake (ou o plugin) apontando para a porta impressa

Testes #

dart pub get
dart test
0
likes
160
points
97
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Embed a real-time Snakemake workflow monitor in a Dart desktop app: WebSocket server, typed event models, state reducer and process launcher.

Repository (GitHub)
View/report issues

Topics

#snakemake #websocket #workflow #bioinformatics #desktop

License

MIT (license)

Dependencies

shelf, shelf_web_socket, web_socket_channel

More

Packages that depend on snakemake_bridge