thespis_impl 0.3.0

Reference implementation for the thespis actor model
Documentation
package:

  # When releasing to crates.io:
  #
  # - last check for all TODO, FIXME, expect, unwrap.
  # - recheck log statements (informative, none left that were just for development, ...)
  # - `cargo +nightly doc --all-features --no-deps --open` and re-read and final polish of documentation.
  #
  # - Update CHANGELOG.md.
  # - Update version numbers in Cargo.yml, Cargo.toml, install section of readme.
  #
  # - `touch **.rs && cargo clippy --tests --examples --benches --all-features`
  # - `cargo update`
  # - `cargo outdated --root-deps-only`
  # - `cargo udeps --all-targets --all-features`
  # - `cargo audit`
  # - `cargo crev crate verify --show-all --recursive` and review.
  # - 'cargo test --all-targets --all-features'
  #
  # - push dev and verify CI result
  # - `cargo test` on dependent crates
  #
  # - cargo publish
  # - `git checkout release && git merge dev --no-ff`
  # - `git tag x.x.x` with version number.
  # - `git push && git push --tags`
  #
  version       : 0.3.0
  name          : thespis_impl
  edition       : '2021'
  authors       : [ Naja Melan <najamelan@autistici.org> ]
  description   : Reference implementation for the thespis actor model
  license       : Unlicense
  homepage      : https://github.com/thespis-rs/thespis_impl
  repository    : https://github.com/thespis-rs/thespis_impl
  documentation : https://docs.rs/thespis_impl
  readme        : README.md
  keywords      : [ async, futures, actor, thespis ]
  categories    : [ asynchronous, concurrency ]

  metadata:
    docs:
      rs:
        all-features: true
        targets     : []


badges:

  maintenance : { status     : actively-developed      }
  travis-ci   : { repository : thespis-rs/thespis_impl }


features:

  # Internal, ignore. This allows wasm-pack test to run integration tests without
  # compilation failing because there are examples that aren't compatible with wasm.
  #
  default: [not_wasm]

  # This is only there so `wasm-pack test` wouldn't try to compile the examples.
  #
  not_wasm: []


lib:

  bench: false


dependencies:

  # public dependencies, bump major if changing version numbers here.
  #
  async_executors    : { version: ^0.6 }
  futures            : { version: ^0.3, features: [ std, compat ], default-features: false }
  thespis            : { version: ^0.2 }
  tracing            : ^0.1

  # private dependencies.
  #
  oneshot            : { version: ^0.1 }
  tracing-futures    : { version: ^0.2, features: [ futures-03 ] }


dev-dependencies:

  tracing-subscriber : { version: ^0.3, default-features: false, features: [ ansi, fmt, json, tracing-log, env-filter ] }
  ring-channel      : ^0.11
  futures           : { version: ^0.3, features: [ thread-pool ], default-features: false }
  async_nursery     : ^0.5
  async-std         : { version: ^1, features: [ attributes ] }
  # tracing-test      : { version: ^0.1, path: ../../RUST/tracing-test/tracing-test }
  futures-timer     : ^3
  async_progress    : ^0.2


target:

  'cfg(target_arch = "wasm32")':

    dev-dependencies:

      async_executors  : { version: ^0.6, features: [ bindgen, async_std ] }

      wasm-bindgen-futures: { version: ^0.4 }
      wasm-bindgen-test : ^0.3
      wasm-bindgen      : ^0.2


  'cfg(not(target_arch = "wasm32"))':

    dev-dependencies:

      async_executors   : { version: ^0.6, features: [localpool, threadpool, async_std, tokio_ct, tokio_tp, tracing] }
      async_chanx       : { version: ^0.1.0-alpha, features: [tokio] }
      stream_throttle   : { version: ^0.4, default-features: false, features: [timer-futures-timer] }
      tokio-stream      : { version: ^0.1 }
      tokio-util        : { version: ^0.7 }

      # for benchmarks
      #
      actix-rt          : ^2
      actix             : ^0.13
      criterion         : { version: ^0.4, features: [] }
      tokio             : { version: ^1, features: [ sync, macros ] }


build-dependencies:

  rustc_version: ^0.4


bench:

  - name   : single_thread_delivery
    path   : benches/single_thread/delivery.rs
    harness: false

  - name   : multi_thread_delivery
    path   : benches/multi_thread/delivery.rs
    harness: false

  - name   : contention
    path   : benches/multi_thread/contention.rs
    harness: false


example:

  - name              : actix_perf
    path              : examples/perf/actix.rs
    required-features : [ not_wasm ]

  - name              : actix_local_perf
    path              : examples/perf/actix_local.rs
    required-features : [ not_wasm ]

  - name              : actix_mpsc_perf
    path              : examples/perf/actix_mpsc.rs
    required-features : [ not_wasm ]

  - name              : actix_unbounded_perf
    path              : examples/perf/actix_unbounded.rs
    required-features : [ not_wasm ]

  - name              : thespis_perf
    path              : examples/perf/thespis.rs
    required-features : [ not_wasm ]

  - name              : method_perf
    path              : examples/perf/method.rs
    required-features : [ not_wasm ]

  - name              : thespis_local_perf
    path              : examples/perf/thespis_local.rs
    required-features : [ not_wasm ]

  - name              : thespis_mpsc_perf
    path              : examples/perf/thespis_mpsc.rs
    required-features : [ not_wasm ]

  - name              : thespis_unbounded_perf
    path              : examples/perf/thespis_unbounded.rs
    required-features : [ not_wasm ]

  - name              : across_yields
    path              : examples/across_yields.rs
    required-features : [ not_wasm ]

  - name              : basic
    path              : examples/basic.rs
    required-features : [ not_wasm ]

  - name              : concurrent
    path              : examples/concurrent.rs
    required-features : [ not_wasm ]

  - name              : concurrent_nursery
    path              : examples/concurrent_nursery.rs
    required-features : [ not_wasm ]

  - name              : desugar
    path              : examples/desugar.rs
    required-features : [ not_wasm ]

  - name              : drop_channel
    path              : examples/drop_channel.rs
    required-features : [ not_wasm ]

  - name              : local_spawn
    path              : examples/local_spawn.rs
    required-features : [ not_wasm ]

  - name              : move_fut
    path              : examples/move_fut.rs
    required-features : [ not_wasm ]

  - name              : recipient
    path              : examples/recipient.rs
    required-features : [ not_wasm ]

  - name              : recipient_any
    path              : examples/recipient_any.rs
    required-features : [ not_wasm ]

  - name              : addr_is_sink
    path              : examples/addr_is_sink.rs
    required-features : [ not_wasm ]

  - name              : supervisor
    path              : examples/supervisor.rs
    required-features : [ not_wasm ]

  - name              : throttle
    path              : examples/throttle.rs
    required-features : [ not_wasm ]

  - name              : tokio_channel
    path              : examples/tokio_channel.rs
    required-features : [ not_wasm ]

  - name              : tracing
    path              : examples/tracing.rs
    required-features : [ not_wasm ]