A lightweight and powerful batch library written in Dart

Overview

batch

A lightweight and powerful batch library written in Dart.


pub package Test Analyzer Last Commits Pull Requests Code size License Contributor Covenant


1. About

The batch library was created to make it easier to develop job schedule and batch program in Dart language. It supports easy scheduling using Cron and it is a very lightweight and powerful.

1.1. Features

  • Very powerful batch library written in Dart.
  • Multiple job schedules can be easily defined.
  • Intuitive and easy to understand job definitions.
  • Easy scheduling of job execution in Cron format.
  • Powerful and customizable logging functions without the need for third-party libraries.
  • You can develop with Dart's resources!

1.2. Basic Concepts

The processing of the batch library is mainly performed using the following elements.

Description
Job Job is defined as the largest unit in a batch execution process in batch library. Job has a unique name and manages multiple Step.
Step Step is defined as middle unit in a batch execution process in batch library. Step has a unique name and manages multiple Task.
Task Task is defined as the smallest unit in a batch execution process in batch library. Task defines the specific process to be performed in the batch processing.

The concepts in the table above are in hierarchical order, with the top concepts encompassing the lower elements. However, this hierarchy only represents the layers of processing, and the higher level processing does not affect the lower level processing and vice versa.

1.3. Introduction

1.3.1. Install Library

With Dart:

 dart pub add batch

With Flutter:

 flutter pub add batch

1.3.2. Import It

import 'package:batch/batch.dart';

1.3.3. Use Batch library

The easiest way to use the batch library is to create a class that implements Task and register it to Step and Job in the order you want to execute.

The execution schedule is specified for each job when creating a Job instance in the form of Cron.

When creating Job and Task instances, the names should be unique. However, you can use the same name for steps contained in different Job.

import 'package:batch/batch.dart';

void main() {
  final job1 = Job(name: 'Job1', cron: '*/1 * * * *')
    ..nextStep(
      Step(name: 'Step1')
        ..nextTask(SayHelloTask())
        ..nextTask(SayWorldTask()),
    )
    ..nextStep(
      Step(name: 'Step2').branch().onCompleted().to(
            // You can create branches based on BranchStatus.
            Step(name: 'Step3')
              ..nextTask(SayHelloTask())
              ..nextTask(SayWorldTask()),
          )
        ..nextTask(SayHelloTask())
        ..nextTask(SayWorldTask()),
    );

  final job2 = Job(
    name: 'Job2',
    cron: '*/3 * * * *',
    // You can set precondition to run this job.
    precondition: JobPrecondition(),
  )..nextStep(
      Step(
        name: 'Step1',
        // You can set precondition to run this step.
        precondition: StepPrecondition(),
      )
        ..nextTask(SayHelloTask())
        ..nextTask(SayWorldTask()),
    );

  BatchApplication(
    logConfig: LogConfiguration(
      level: LogLevel.trace,
      filter: DefaultLogFilter(),
      output: ConsoleLogOutput(),
      printLog: true,
    ),
  )
    // You can add any parameters that is shared in this batch application.
    ..addSharedParameter(key: 'key1', value: 'value1')
    ..addSharedParameter(key: 'key2', value: {'any': 'object'})
    ..addJob(job1)
    ..addJob(job2)
    ..run();
}

class SayHelloTask extends Task<SayHelloTask> {
  @override
  Future<RepeatStatus> execute(ExecutionContext context) async {
    debug('Hello,');
    return RepeatStatus.finished;
  }
}

class SayWorldTask extends Task<SayWorldTask> {
  @override
  Future<RepeatStatus> execute(ExecutionContext context) async {
    info('World!');
    return RepeatStatus.finished;
  }
}

class JobPrecondition extends Precondition {
  @override
  bool check() {
    return true;
  }
}

class StepPrecondition extends Precondition {
  @override
  bool check() {
    return false;
  }
}

Also RepeatStatus is an important factor when defining Task processing.

A Task should always return RepeatStatus, and RepeatStatus.finished to finish the process of the Task. Another option to return in Task processing is RepeatStatus.continuable, but if this is returned, the same Task processing will be repeated over and over until RepeatStatus.finished is returned.

1.4. Logging

The batch library supports logging since version 0.2.0.

The logging system provided by the batch library is a customized library of Logger, and is optimized for the batch library specification. Also the logging system provided by the batch library inherits many elements from Logger from this background.

The batch library provides the following logging methods.

Description
trace A log level describing events showing step by step execution of your code that can be ignored during the standard operation, but may be useful during extended debugging sessions.
debug A log level used for events considered to be useful during software debugging when more granular information is needed.
info An event happened, and the event is purely informative and can be ignored during normal operations.
warn Unexpected behavior happened inside the application, but it is continuing its work and the key business features are operating as expected.
error One or more functionalities are not working, preventing some functionalities from working correctly.
fatal One or more key business functionalities are not working and the whole system doesn’t fulfill the business functionalities.

The logging methods provided by the batch library can be used from any class that imports batch.dart. Besides there is no need to instantiate an Logger by yourself.

All you need to specify about logging in batch library is the configuration of the log, and the Logger is provided safely under the lifecycle of the batch library.

See the sample code below for the simplest usage.

import 'package:batch/batch.dart';

class TestLogTask extends Task<TestLogTask> {
  @override
  Future<RepeatStatus> execute() async {
    trace('Test trace');
    debug('Test debug');
    info('Test info');
    warn('Test warning');
    error('Test error');
    fatal('Test fatal');

    return RepeatStatus.finished;
  }
}

For example, if you run sample code as described earlier, you will see the following log output.

yyyy-MM-dd 15:03:46.523299 [info   ] :: The job schedule is being configured...
yyyy-MM-dd 15:03:46.532843 [info   ] :: The job schedule has configured!
yyyy-MM-dd 15:04:00.016205 [info   ] :: STARTED JOB (Job1)
yyyy-MM-dd 15:04:00.017023 [info   ] :: STARTED STEP (Job1 -> Step1)
yyyy-MM-dd 15:04:00.021285 [info   ] :: Hello,
yyyy-MM-dd 15:04:00.021510 [info   ] :: World!
yyyy-MM-dd 15:04:00.021581 [info   ] :: FINISHED STEP (Job1 -> Step1)

Note: The setup of the logger is done when executing the method run in BatchApplication. If you want to use the logging feature outside the life cycle of the batch library, be sure to do so after executing the run method of the BatchApplication.

1.4.1. Customize Log Configuration

It is very easy to change the configuration of the Logger provided by the batch library to suit your preferences. Just pass the LogConfiguration object to the constructor when instantiating the JobLauncher, and the easiest way is to change the log level as below.

BatchApplication(
  logConfig: LogConfiguration(
    level: LogLevel.debug,
  ),
);

Also, the logging feature can be freely customized by inheriting the following abstract classes and setting them in the LogConfiguration.

Description
LogFilter This is the layer that determines whether log output should be performed. By default, only the log level is determined.
LogPrinter This layer defines the format for log output.
LogOutput This is the layer that actually performs the log output. By default, it outputs to the console.

Also, the batch library provides several classes that implement these abstract classes, so you can use them depending on your situation.

1.4.2. LogFilter

Description
DefaultLogFilter This is a simple log filter. You can control the output of logs just according to the log level. This filter is used by default.

Example

BatchApplication(
  logConfig: LogConfiguration(
    filter: DefaultLogFilter(),
  ),
);

1.4.3. LogOutput

Description
ConsoleLogOutput Provides features to output log to console. This filter is used by default.
FileLogOutput Provides features to output the log to the specified file.

Example

BatchApplication(
  logConfig: LogConfiguration(
    output: ConsoleLogOutput(),
  ),
);

1.5. Contribution

If you would like to contribute to the development of this library, please create an issue or create a Pull Request.

Developer will respond to issues and review pull requests as quickly as possible.

1.6. License

Copyright (c) 2022, Kato Shinya. All rights reserved.
Use of this source code is governed by a
BSD-style license that can be found in the LICENSE file.

1.7. More Information

Batch was designed and implemented by Kato Shinya.

Comments
  • docs: Refactoring for the version `v1.0.0`

    docs: Refactoring for the version `v1.0.0`

    1. Description

    1.1. Checklist

    • [x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
    • [x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
    • [x] I have updated/added tests for ALL new/updated/fixed functionality.
    • [x] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
    • [x] I have updated/added relevant examples in examples.

    1.2. Breaking Change

    • [ ] Yes, this is a breaking change.
    • [x] No, this is not a breaking change.

    1.3. Related Issues

    opened by myConsciousness 6
  • fix: Refactoring for the version `v1.0.0`

    fix: Refactoring for the version `v1.0.0`

    1. Description

    1.1. Checklist

    • [x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
    • [x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
    • [x] I have updated/added tests for ALL new/updated/fixed functionality.
    • [x] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
    • [x] I have updated/added relevant examples in examples.

    1.2. Breaking Change

    • [x] Yes, this is a breaking change.
    • [ ] No, this is not a breaking change.

    1.3. Related Issues

    opened by myConsciousness 6
  • fix: fix for the issue (#121)

    fix: fix for the issue (#121)

    1. Description

    1.1. Checklist

    • [x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
    • [x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
    • [x] I have updated/added tests for ALL new/updated/fixed functionality.
    • [x] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
    • [x] I have updated/added relevant examples in examples.

    1.2. Breaking Change

    • [x] Yes, this is a breaking change.
    • [ ] No, this is not a breaking change.

    1.3. Related Issues

    opened by myConsciousness 6
  • Add license scan report and status

    Add license scan report and status

    Your FOSSA integration was successful! Attached in this PR is a badge and license report to track scan status in your README.

    Below are docs for integrating FOSSA license checks into your CI:

    opened by fossabot 6
  • [Scheduled] `dart pub upgrade --null-safety`

    [Scheduled] `dart pub upgrade --null-safety`

    Auto-generated by create-pull-request

    See: https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs

    Github Actions 
    opened by myConsciousness 5
  • fix: fixed for the issue (#162)

    fix: fixed for the issue (#162)

    1. Description

    1.1. Checklist

    • [ ] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
    • [ ] I have read the Contributor Guide and followed the process outlined for submitting PRs.
    • [ ] I have updated/added tests for ALL new/updated/fixed functionality.
    • [ ] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
    • [ ] I have updated/added relevant examples in examples.

    1.2. Breaking Change

    • [ ] Yes, this is a breaking change.
    • [ ] No, this is not a breaking change.

    1.3. Related Issues

    opened by myConsciousness 5
  • build(deps): bump codecov/codecov-action from 2.1.0 to 3

    build(deps): bump codecov/codecov-action from 2.1.0 to 3

    Bumps codecov/codecov-action from 2.1.0 to 3.

    Release notes

    Sourced from codecov/codecov-action's releases.

    v3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Changelog

    Sourced from codecov/codecov-action's changelog.

    3.0.0

    Breaking Changes

    • #689 Bump to node16 and small fixes

    Features

    • #688 Incorporate gcov arguments for the Codecov uploader

    Dependencies

    • #548 build(deps-dev): bump jest-junit from 12.2.0 to 13.0.0
    • #603 [Snyk] Upgrade @​actions/core from 1.5.0 to 1.6.0
    • #628 build(deps): bump node-fetch from 2.6.1 to 3.1.1
    • #634 build(deps): bump node-fetch from 3.1.1 to 3.2.0
    • #636 build(deps): bump openpgp from 5.0.1 to 5.1.0
    • #652 build(deps-dev): bump @​vercel/ncc from 0.30.0 to 0.33.3
    • #653 build(deps-dev): bump @​types/node from 16.11.21 to 17.0.18
    • #659 build(deps-dev): bump @​types/jest from 27.4.0 to 27.4.1
    • #667 build(deps): bump actions/checkout from 2 to 3
    • #673 build(deps): bump node-fetch from 3.2.0 to 3.2.3
    • #683 build(deps): bump minimist from 1.2.5 to 1.2.6
    • #685 build(deps): bump @​actions/github from 5.0.0 to 5.0.1
    • #681 build(deps-dev): bump @​types/node from 17.0.18 to 17.0.23
    • #682 build(deps-dev): bump typescript from 4.5.5 to 4.6.3
    • #676 build(deps): bump @​actions/exec from 1.1.0 to 1.1.1
    • #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
    Commits
    • e3c5604 Merge pull request #689 from codecov/feat/gcov
    • 174efc5 Update package-lock.json
    • 6243a75 bump to 3.0.0
    • 0d6466f Bump to node16
    • d4729ee fetch.default
    • 351baf6 fix: bash
    • d8cf680 Merge pull request #675 from codecov/dependabot/npm_and_yarn/openpgp-5.2.1
    • b775e90 Merge pull request #676 from codecov/dependabot/npm_and_yarn/actions/exec-1.1.1
    • 2ebc2f0 Merge pull request #682 from codecov/dependabot/npm_and_yarn/typescript-4.6.3
    • 8e2ef2b Merge pull request #681 from codecov/dependabot/npm_and_yarn/types/node-17.0.23
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 5
  • Bump peter-evans/find-comment from 1 to 2

    Bump peter-evans/find-comment from 1 to 2

    Bumps peter-evans/find-comment from 1 to 2.

    Release notes

    Sourced from peter-evans/find-comment's releases.

    Find Comment v2.0.0

    What's new

    • Updated runtime to Node.js 16
      • The action now requires a minimum version of v2.285.0 for the Actions Runner.
      • If using GitHub Enterprise Server, the action requires GHES 3.4 or later.

    What's Changed

    Full Changelog: https://github.com/peter-evans/find-comment/compare/v1.3.0...v2.0.0

    Find Comment v1.3.0

    • Adds action output comment-author

    Find Comment v1.2.0

    • Adds input direction to change the search direction, specified as first or last.

    Find Comment v1.1.1

    • Dependency updates

    Find Comment v1.1.0

    • Refactored to Typescript
    • Added output comment-body containing the content of the comment if found
    • Fixed an issue where comments after the first 30 were not found

    Find Comment v1.0.2

    • Dependency updates

    Find Comment v1.0.1

    • Dependency updates
    Commits
    • 1769778 Merge pull request #62 from peter-evans/v2
    • d261a41 Update runtime to node 16
    • 2dc3b39 Merge pull request #59 from peter-evans/rm-workflow
    • 7bdc44a ci: remove workflow
    • 838d65d Merge pull request #56 from peter-evans/update-distribution
    • f54cec0 build: update distribution
    • 8911be8 Merge pull request #55 from peter-evans/update-dependencies
    • 6a0aec6 chore: update dependencies
    • 9156830 Merge pull request #53 from peter-evans/dependabot/npm_and_yarn/ansi-regex-5.0.1
    • e134adb Merge pull request #54 from peter-evans/update-distribution
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 5
  • Update default_log_printer_test.dart

    Update default_log_printer_test.dart

    1. Description

    1.1. Checklist

    • [ ] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
    • [ ] I have read the Contributor Guide and followed the process outlined for submitting PRs.
    • [ ] I have updated/added tests for ALL new/updated/fixed functionality.
    • [ ] I have updated/added relevant documentation in docs and added dartdoc comments with ///.
    • [ ] I have updated/added relevant examples in examples.

    1.2. Breaking Change

    • [ ] Yes, this is a breaking change.
    • [ ] No, this is not a breaking change.

    1.3. Related Issues

    opened by myConsciousness 4
  • [Scheduled] `dart pub upgrade --null-safety`

    [Scheduled] `dart pub upgrade --null-safety`

    Auto-generated by create-pull-request

    See: https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs

    Github Actions 
    opened by myConsciousness 4
  • build(deps): bump snow-actions/tweet from 1.1.2 to 1.2.0

    build(deps): bump snow-actions/tweet from 1.1.2 to 1.2.0

    Bumps snow-actions/tweet from 1.1.2 to 1.2.0.

    Release notes

    Sourced from snow-actions/tweet's releases.

    v1.2.0

    What's Changed

    Full Changelog: https://github.com/snow-actions/tweet/compare/v1.1.3...v1.2.0

    v1.1.3

    What's Changed

    Full Changelog: https://github.com/snow-actions/tweet/compare/v1.1.2...v1.1.3

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 4
  • build(deps): bump actions/checkout from 3.1.0 to 3.3.0

    build(deps): bump actions/checkout from 3.1.0 to 3.3.0

    Bumps actions/checkout from 3.1.0 to 3.3.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.3.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.2.0...v3.3.0

    v3.2.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.1.0...v3.2.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 0
  • build(deps): bump snow-actions/tweet from 1.3.0 to 1.4.0

    build(deps): bump snow-actions/tweet from 1.3.0 to 1.4.0

    Bumps snow-actions/tweet from 1.3.0 to 1.4.0.

    Release notes

    Sourced from snow-actions/tweet's releases.

    v1.4.0

    Breaking Changes

    What's Changed

    Full Changelog: https://github.com/snow-actions/tweet/compare/v1.3.0...v1.4.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 0
  • build(deps): bump subosito/flutter-action from 2.6.1 to 2.8.0

    build(deps): bump subosito/flutter-action from 2.6.1 to 2.8.0

    Bumps subosito/flutter-action from 2.6.1 to 2.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependabot Github Actions 
    opened by dependabot[bot] 0
  • [Scheduled] `dart pub upgrade --null-safety`

    [Scheduled] `dart pub upgrade --null-safety`

    Auto-generated by create-pull-request

    See: https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs

    Github Actions do not merge yet 
    opened by myConsciousness 0
  • Wrong value for `AsyncExecutor.parallelism`

    Wrong value for `AsyncExecutor.parallelism`

    The parameter parallelism should be related to the number of CPU cores that you want to use, and not the amount of tasks to execute. Your approach will create more Isolate that your server actually can run in parallel.

    https://github.com/batch-dart/batch.dart/blob/2c774ce1d5149c75b1a5aebd1f1363a905e6960b/lib/src/job/launcher/parallel_step_launcher.dart#L33

    opened by gmpassos 0
Releases(v1.3.0)
  • v1.3.0(Apr 24, 2022)

  • v1.2.0(Apr 21, 2022)

  • v1.1.0(Apr 21, 2022)

  • v1.0.1(Apr 21, 2022)

  • v1.0.0(Apr 20, 2022)

  • v0.12.2(Apr 18, 2022)

  • v0.12.1(Apr 14, 2022)

  • v0.12.0(Apr 14, 2022)

  • v0.11.0(Apr 12, 2022)

  • v0.10.0(Apr 11, 2022)

  • v0.9.0(Apr 10, 2022)

  • v0.8.1(Apr 7, 2022)

  • v0.8.0(Apr 7, 2022)

  • v0.7.1(Apr 4, 2022)

  • v0.7.0(Apr 3, 2022)

  • v0.6.0(Mar 26, 2022)

  • v0.5.1(Mar 17, 2022)

  • v0.5.0(Mar 16, 2022)

  • 0.4.0(Mar 9, 2022)

  • 0.3.0(Feb 27, 2022)

  • 0.2.1(Feb 21, 2022)

  • 0.2.0(Feb 21, 2022)

  • 0.1.0(Feb 16, 2022)

  • 0.0.1(Feb 16, 2022)

Owner
Kato Shinya
Freelance software developer. Web and Batch development in Java. Also mobile development in Flutter.
Kato Shinya
A library for widgets that load their content one page (or batch) at a time.

A library for widgets that load their content one page (or batch) at a time (also known as lazy-loading and pagination). Features Load data one page a

null 224 Oct 20, 2022
Zerker is a lightweight and powerful flutter graphic animation library

What is Zerker Zerker is a flexible and lightweight flutter canvas graphic animation library. With Zerker, you can create a lot of seemingly cumbersom

FlutterKit 519 Dec 31, 2022
Flutter Download Manager is a Cross-Platform file downloader with Parallel and Batch Download support

Flutter Download Manager is a Cross-Platform file downloader with Parallel and Batch Download support. Manage download tasks by url and be notified of status and their progress. Pause, Cancel, Queue and Resume Downloads.

Nabil Mosharraf 11 Dec 17, 2022
This library provides the easiest and powerful Dart/Flutter library for Mastodon API 🎯

The Easiest and Powerful Dart/Flutter Library for Mastodon API ?? 1. Guide ?? 1.1. Features ?? 1.2. Getting Started ⚡ 1.2.1. Install Library 1.2.2. Im

Mastodon.dart 55 Jul 27, 2023
Lightweight and blazing fast key-value database written in pure Dart.

Fast, Enjoyable & Secure NoSQL Database Hive is a lightweight and blazing fast key-value database written in pure Dart. Inspired by Bitcask. Documenta

HiveDB 3.4k Dec 30, 2022
Lightweight and blazing fast key-value database written in pure Dart.

Fast, Enjoyable & Secure NoSQL Database Hive is a lightweight and blazing fast key-value database written in pure Dart. Inspired by Bitcask. Documenta

HiveDB 3.4k Dec 30, 2022
Rules - Powerful and feature-rich validation library for both Dart and Flutter.

Introduction Rules - Powerful and feature-rich validation library for both Dart and Flutter. Rules is a simple yet powerful and feature-rich validatio

Ganesh Rathinavel 24 Dec 12, 2022
dna, dart native access. A lightweight dart to native super channel plugin

dna, dart native access. A lightweight dart to native super channel plugin, You can use it to invoke any native code directly in contextual and chained dart code.

Assuner 14 Jul 11, 2022
A powerful official extension library of Tab/TabBar/TabView, which support to scroll ancestor or child Tabs when current is overscroll, and set scroll direction and cache extent.

extended_tabs Language: English | 中文简体 A powerful official extension library of Tab/TabBar/TabView, which support to scroll ancestor or child Tabs whe

FlutterCandies 185 Dec 13, 2022
⚡️A highly customizable, powerful and easy-to-use alerting library for Flutter.

Flash ⚡️ A highly customizable, powerful and easy-to-use alerting library for Flutter. Website: https://sososdk.github.io/flash Specs This library all

null 368 Jan 5, 2023
A powerful plugin that fully uses the native image library's ability to display images on the flutter side.

PowerImage A powerful plugin that fully uses the native image library's ability to display images on the flutter side. 中文文档 Features: Supports the abi

Alibaba 422 Dec 23, 2022
A lightweight and customizable http client that allows you to create offline-first dart app easily.

Enjoyable & customizable offline-first REST API client Unruffled is lightweight and customizable http client that allows you to create offline-first e

T. Milian 3 May 20, 2022
This Country Selector UI Library written by Dart and Fluter and supports three locales with country's name, achieves lazy loading, and country card animation on listview

Country Selector Widget This Country Selector Widget UI Library written by Dart and Fluter and supports three locales with country's name, achieves la

Klaus 6 Nov 15, 2022
A Dart-native lightweight Apache Pulsar client primarily focused on the IoT telemetry domain

pulsar_iot_client A lightweight Apache Pulsar client primarily focused on the IoT telemetry domain. This project aims to improve the resulting perform

Mike Zolotarov 5 May 10, 2022
Simple and fast Entity-Component-System (ECS) library written in Dart.

Fast ECS Simple and fast Entity-Component-System (ECS) library written in Dart. CPU Flame Chart Demonstration of performance for rotation of 1024 enti

Stanislav 8 Nov 16, 2022
An incremental DOM library, with support for virtual DOM and components, written in Dart.

domino - a DOM library in Dart Inspired by Google's incremental-dom library, package:domino is a Dart-native DOM library supporting incremental DOM up

null 17 Dec 26, 2022
ANSI escape sequences and styling micro-library written in fluent/modern Dart.

neoansi ANSI escape sequences and styling micro-library written in fluent/modern Dart. This library provides minimal ANSI escape sequences and helpers

Neo Dart 8 Oct 31, 2022
A clean and lightweight progress HUD for your iOS and tvOS app.

SVProgressHUD SVProgressHUD is a clean and easy-to-use HUD meant to display the progress of an ongoing task on iOS and tvOS. Demo Try SVProgressHUD on

SVProgressHUD 12.4k Jan 3, 2023
Mysql.dart - MySQL client for Dart written in Dart

Native MySQL client written in Dart for Dart See example directory for examples

null 48 Dec 29, 2022