watermill
goja
watermill | goja | |
---|---|---|
23 | 25 | |
6,756 | 4,944 | |
1.6% | - | |
7.1 | 6.3 | |
7 days ago | 3 months ago | |
Go | Go | |
MIT License | MIT License |
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.
watermill
-
Microservices communication
I’ve successfully worked on projects using an asynchronous event-driven way of connecting services. I really like the decoupling of business logic and the events triggering it. I highly recommend https://github.com/ThreeDotsLabs/watermill to be more flexible when it comes to choosing the actual technology driving the async patter. It might be NATS today but requirements might change and you need to change. Watermill prepares you for this.
-
Public chatroom websocket project in Go
Highly recommend https://watermill.io lib for building async apps (using among others pub/sub patterns). It greatly decouples your code from the underlying technology and gives you the freedom to choose depending on the environment (e.g dev, prod). For dev or small scale purposes, it supports pub/sub purely based on go channels.
-
How did you solve the problem of transactions between different databases and services?
Look at this library: https://github.com/ThreeDotsLabs/watermill
-
Examples of using task scheduler with Go?
Watermill is a good pubsub abstraction. You can start with native go channels and grow into a cloud pubsub or Kafka/Pulsar if you need to.
-
Small EDA/Micro service Project
These conditions have led me to discover two packages watermill.io and go-kit. Both of these seem to do what I want and I am thinking of implementing the project using watermill and go Chanels and deploying to a server or some sort.
-
Event Observer Pattern in Go
github.com/ThreeDotsLabs/watermill package provides a framework for building event-driven applications. It allows easy communication between independent components by decoupling the sender and the receiver.
-
I've just started learning Golang, and I'm struggling to choose a framework.
My personal favorite tools: - https://github.com/go-kit/ for building services (although it's not necessary a great tool for prototyping) - https://github.com/gorilla/mux router (although it's been recently deprecated, so I'm looking for a similar, maintained library) - https://entgo.io/ ORM - https://watermill.io/ for messaging
- How to handle events: an interactive example of consumer groups
- I’m looking for a suggestion for a queuing library
-
Looking for a mature distributed task queuer/scheduler in go
Checkout https://watermill.io/
goja
- Goja: ECMAScript/JavaScript engine in pure Go
-
SSR React in Go
dop251/goja
-
Show HN: Flyscrape – A standalone and scriptable web scraper in Go
Your comment was posted 4 minutes ago. That means you still have enough time to edit your comment to change it so it contains real URLs:
<https://github.com/PuerkitoBio/goquery>
<https://github.com/dop251/goja>
(Please do not reply to this comment—I won't be able to delete it once the previous post is fixed if it contains replies.)
- Goja: ECMAScript 5.1 implementation in pure Go
-
TySON: TypeScript as an embeddable configuration language, without depending on Node or V8
Apparently "not depending on Node or V8" means depending on some random Go JS engine instead.
-
Examples of using task scheduler with Go?
Goja https://github.com/dop251/goja
-
Running a Js file inside Go
Either call a JavaScript interpreter like node with exec.Command and read its stdout, or use a pure Go JavaScript interpreter like goja or otto.
-
easytemplate - Go's text/template library with JS Super Powers
Just to also say this is implemented in pure Go we aren't including V8 or any external dependencies we instead use https://github.com/dop251/goja which is a JS VM written completely in Go.
-
how to JSON Marshal a struct if one of its fields is a fucntion
If you want to serialize a function to JSON one idea may be to embed a scripting language like JavaScript into your program. The goja package is a very good solution: a native ES5 JavaScript (with some ES6 syntax support as well) natively implemented in Go so you can get tight data bindings to your Go types and funcs. For your JSON marshalling you could serialize a JavaScript function source (text) and when reloading that, parse that text with goja to be able to run it dynamically in your Go program. Basically you'd need to get away from pure Go for this and towards something that is JSON compatible to (de)serialize to text.
-
Anyone experienced in golang ssr?
Not really. It was built in-house and I don't know of anything about it that went public. I recall it using Goja for the JS runtime. Code was embedded into the binary (think embed package). There was some kind of sorcery to convert what would be HTTP network calls in the browser into local function calls during SSR, but I'm hazy on how it worked I'm afraid.
What are some alternatives?
eventhorizon - Event Sourcing for Go!
otto - A JavaScript interpreter in Go (golang)
go-kit - A standard library for microservices.
v8go - Execute JavaScript from Go
Benthos - Fancy stream processing made operationally mundane
go-lua - A Lua VM in Go
pulse - ☁EventBus on Portable Pub/Sub Components☄
gopher-lua - GopherLua: VM and compiler for Lua in Go
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
tengo - A fast script language for Go
go-rabbitmq - A wrapper of streadway/amqp that provides reconnection logic and sane defaults
go-python - naive go bindings to the CPython2 C-API