Skip to content

Conversation

@unbalancedparentheses
Copy link

Summary

Add Backend enum to allow explicit selection of how an Actor is spawned:

  • Async: Run on the async runtime (tokio tasks) - cooperative multitasking
  • Blocking: Run on blocking thread pool (spawn_blocking) - for blocking I/O
  • Thread: Run on dedicated OS thread - for long-running singletons

Add start_with_backend(backend: Backend) method to Actor trait that provides a unified API for runtime selection. Existing start(), start_blocking(), and start_on_thread() methods remain as convenience aliases.

Depends on: PR #94 (Actor Rename)

Test plan

  • All 79 existing tests pass
  • Clippy passes with no warnings
  • Cargo check passes

🤖 Generated with Claude Code

unbalancedparentheses and others added 9 commits January 8, 2026 02:23
Rename types from Erlang-style names to more accessible, universal terminology
as specified in ROADMAP.md.

Type renames:
- GenServer → Actor
- GenServerHandle<G> → ActorRef<A>
- CallMsg → Request
- CastMsg → Message
- OutMsg → Reply
- CallResponse → RequestResult
- CastResponse → MessageResult
- InfoResponse → InfoResult
- GenServerError → ActorError
- GenServerInMsg → ActorInMsg

Method renames:
- handle_call → handle_request
- handle_cast → handle_message

Error variant renames:
- CallMsgUnused → RequestUnused
- CastMsgUnused → MessageUnused
- CallTimeout → RequestTimeout

File renames:
- gen_server.rs → actor.rs (in both tasks/ and threads/ modules)

This is a breaking change that affects the public API but makes the library
more accessible to developers unfamiliar with Erlang/OTP terminology.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Backend enum to allow explicit selection of how an Actor is spawned:
- Async: Run on the async runtime (tokio tasks) - cooperative multitasking
- Blocking: Run on blocking thread pool (spawn_blocking) - for blocking I/O
- Thread: Run on dedicated OS thread - for long-running singletons

Add start_with_backend(backend: Backend) method to Actor trait that
provides a unified API for runtime selection. Existing start(),
start_blocking(), and start_on_thread() methods remain as convenience
aliases.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@unbalancedparentheses
Copy link
Author

Closing: This PR was based on a diverged fork. The changes have been reorganized into PRs #102 and #103 for proper sequencing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant