zigself
protoactor-go
zigself | protoactor-go | |
---|---|---|
2 | 18 | |
143 | 4,883 | |
- | 0.6% | |
8.4 | 9.3 | |
about 2 months ago | 7 days ago | |
Zig | Go | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zigself
-
0.11.0 Release Notes
I don't know about "daily" right now (I've had to take a break due to obligations), but I'm working on a modern implementation of the Self programming language with actor capabilities: https://github.com/sin-ack/zigself
It's nowhere near usable yet, but Zig has been a joy to work with for over a year, and I can definitely see myself using it for a big piece of software.
-
Erlang's not about lightweight processes and message passing
> Creating a language with the feel of a lisp, the environment of Smalltalk, and the concurrency of Erlang has been my dream for a long time.
I'm trying to eventually accomplish something like this: https://github.com/sin-ack/zigself
It's an implementation of the Self programming language in Zig, with an actor model inspired by Erlang.
The main thing to realize is that Lisp and Smalltalk are very much symmetrical in terms of structure. There is no real distinction between the two other than syntax and basic computation unit (closures vs. objects). And even closures can be used as objects and vice versa.
That only leaves the concurrency model. I have a basic implementation of actors using objects as the "context". It still has a long way to go to reach the supervisor tree model of Erlang, but interestingly enough, the ideas in the article are reflected here heavily; behaviorism is at the core of Self.
protoactor-go
-
Is there a programming language that will blow my mind?
https://github.com/asynkron/protoactor-go & this is a great lib, that implements a Erlang/Akka-like the Actor Model in Go.
-
Introduction to Software Architecture with Actors: Part 3 — On Simple Systems
I have worked with Orleans and Orbit a little bit and always wanted to have a look to akka.net or proto.actor. Do you know an Open Source project which makes use of actors?
-
Ergo: Erlang/OTP Implemented in Golang
Looks cool. However, since this is a paid product… if one wants an actor framework for go without the need to connect to Erlang nodes, this will be a fine choice: https://github.com/asynkron/protoactor-go.
-
Erlang's not about lightweight processes and message passing
A used this a couple of times in production: https://github.com/asynkron/protoactor-go.
No problem launching a 100k actors on a laptop.
- How to deal with multiple read and write requests on same data at almost the same time?
-
Learning resource for seniors
https://proto.actor is pretty brand new and uses gRPC
-
How “let it fail” leads to simpler code
This would be my go to for anything _supervisor_ in golang: https://github.com/asynkron/protoactor-go#supervision.
- Golang vs Elixir protoactor supervision
- Citybound – city building game using actor-based distributed simulation
- Proto.Actor – Actor Model Framework
What are some alternatives?
zeroman
lipgloss - Style definitions for nice terminal layouts 👄
zig-gorillas - A clone of the classic QBasic Gorillas written in the Zig programming language
xstate-python - XState for Python
armstrong-distributed-systems - Notes on how we potentially could build reliable, scalable and maintainable computer systems.
otp - Erlang/OTP
gale - Strongly-typed, minimal-ish, stack-based development at storm-force speed.
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
MiniPixel - A tiny pixel art editor
gopherjs - A compiler from Go to JavaScript for running Go code in a browser
letlang - Functional language with a powerful type system.
drpc - drpc is a lightweight, drop-in replacement for gRPC