Nachos Preventing Motivation

    com.unityfx.async

    1.1.0 • Public • Published

    # UnityFx.Async Requires Unity 2018.3 or higher.

    SUMMARY

    Lightweight Task-like asynchronous operations (promises) for Unity3d.

    Library is designed as a lightweight Unity3d-compatible Tasks alternative. Main design goals are:

    • Minimum object size and number of allocations.
    • Extensibility. The library entities are designed to be easily extensible.
    • Thread-safe. The library classes can be safely used from different threads (unless explicitly stated otherwise).
    • Promises support. All asyncronous operations in library support promise-like programming.
    • Task-like interface and behaviour. In many cases library classes can be used much like corresponding TPL entities.
    • Unity3d-specific features and compatibility. This includes possibility to yield operations in coroutines, net35-compilance, extensions of Unity asynchronous operations etc.

    The table below summarizes differences berween UnityFx.Async and other popular asynchronous operation frameworks:

    Stat UnityFx.Async C-Sharp-Promise TPL
    Thread-safe ✔️ - ✔️
    .NET 3.5 compilance ✔️ ✔️ -
    Supports SynchronizationContext capturing ✔️ - ✔️
    Supports continuations ✔️ ✔️ ✔️
    Supports Unity coroutines ️✔️ - -
    Supports async / await ✔️ - ✔️
    Supports promise-like continuations ✔️ ✔️ -
    Supports cancellation ✔️ - ✔️
    Supports progress reporting ✔️ ✔️ ✔️
    Supports child operations - - ✔️
    Supports Task-like types (requires C# 7.2) ✔️ - ✔️
    Supports ExecutionContext flow - - ✔️
    Minimum allocations per continuation ~1 5+ 2+

    NOTE: As the table states ExecutionContext flow is NOT supported. Please use Tasks if you need it.

    USAGE

    Npm package is available at npmjs.com. To use it, add the following line to dependencies section of your manifest.json. Unity should download and link the package automatically:

    {
      "scopedRegistries": [
        {
          "name": "Arvtesh",
          "url": "https://registry.npmjs.org/",
          "scopes": [
            "com.unityfx"
          ]
        }
      ],
      "dependencies": {
        "com.unityfx.async": "1.1.0"
      }
    }

    USEFUL LINKS

    Install

    npm i com.unityfx.async

    DownloadsWeekly Downloads

    953

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    1.44 MB

    Total Files

    96

    Last publish

    Collaborators

    • arvtesh