apd
centrifuge
Our great sponsors
apd | centrifuge | |
---|---|---|
7 | 13 | |
597 | 978 | |
2.2% | 4.3% | |
3.8 | 8.5 | |
about 1 month ago | 5 days ago | |
Go | Go | |
Apache License 2.0 | 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.
apd
-
What libraries are missing?
https://github.com/cockroachdb/apd is currently the best implementation in the ecosystem (performance, correctness). Have you already evaluated it?
-
Lack of Decimal Support
FWIW I think cockroachdb/apd is the best third party option. While building bojanz/currency I've evaluated and benchmarked the others and found them either less maintained, slower, or both.
-
Small Fixed-Point Decimals library
I have a package for handling currency amounts and calculations that is based on cockroachdb/apd, in my opinion the best arbitrary-precision decimal implementation in Go right now. So, I can offer a bit of insight.
- cockroachdb/apd v3.0.0
-
Library recommendation -- money calculations, more accurate handling of floats
The best decimal package is still cockroachdb/apd. I wrap it in bojanz/currency for money handling.
-
What libraries from other languages do you wish were ported over into go?
https://github.com/cockroachdb/apd remains the best decimal library for Go (ericlagergren/decimal is faster but unmaintained).
-
currency - Currency amounts and formatting for Go
Note: In benchmarks ericlagergren/decimal was noticeably faster than cockroachdb/apd, but it has known bugs when used with go mod, so I decided to wait and go with cockroachdb/apd for now. The Amount struct wraps the decimal implementation completely, making it easy to do the swap later without breaking BC.
centrifuge
-
Centrifugo v5 - new major release of real-time messaging server written in Go
BTW, Centrifugo is based on https://github.com/centrifugal/centrifuge Go library which may provide much more control and flexibility for Gophers than a standalone server and can be embedded to any Go app leveraging all Centrifugo client SDKs.
-
Websocket memory usage
There are libraries which provide more advanced APIs for creating real-time applications, for example https://github.com/centrifugal/centrifuge
- Centrifuge - multi-transport real-time messaging library with built-in scalability
-
Elixir or golang which wiil be good for large websocket connections.
Yes, but there are two excelent libs for golang websockets - https://github.com/gobwas/ws - https://github.com/centrifugal/centrifuge
- Millions of Active WebSockets with Node.js
-
Best way for broadcast message un websocket
What https://github.com/centrifugal/centrifuge does:
-
Gorilla/websocket or Melody?
Have you considered https://github.com/centrifugal/centrifuge? It also uses Gorilla WebSocket for WebSocket transport at the moment โ but it's hidden inside and may be replaced if needed since Transport interface is pluggable. It's more heavyweight though than both Melody and Gorilla WebSocket but provides much more functionality out-of-the-box.
-
What libraries are missing?
Not a Socket.IO compatible but maybe you will find it useful/interesting: https://github.com/centrifugal/centrifuge
-
Centrifugo v4 released โ with own WebSocket emulation layer, optimized client protocol, unified SDK behavior, experimental HTTP/3 and WebTransport support
Thanks! BTW, Centrifugo's core is based on https://github.com/centrifugal/centrifuge Go library - which theoretically can be more flexible and extensible solution for Go developers than Centrifugo server since server dictates some auth/permission/channel/api rules.
-
TCP or websockets for chat server
Hello, +1 to WebSockets. If you need to choose WS library โ go with https://github.com/gorilla/websocket or https://github.com/gobwas/ws. You can also look at Centrifugo server (https://centrifugal.dev/, supports WebSocket, SockJS bidi transports, also EventSource, HTTP-streaming, GRPC unidirectional transports and many builtin features) or https://github.com/centrifugal/centrifuge Go library.
What are some alternatives?
decimal - Arbitrary-precision fixed-point decimal numbers in Go
Socket.io - Realtime application framework (Node.JS server)
decimal - A high-performance, arbitrary-precision, floating-point decimal library.
websocket - A fast, well-tested and widely used WebSocket implementation for Go.
root - The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
Mercure - ๐ชฝ An open, easy, fast, reliable and battery-efficient solution for real-time communications
gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more
beaver - ๐จ A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
currency - Currency handling for Go.
jetstream - JetStream Utilities
ent - An entity framework for Go
kcptun - A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64ใN:M ๅค้ๅใจ FEC ใๅใใ KCP ใซๅบใฅใๅฎๅฎใใๅฎๅ จใชใใณใใซใ N:M ๋ค์คํ ๋ฐ FEC๋ฅผ ์ฌ์ฉํ๋ KCP ๊ธฐ๋ฐ์ ์์ ์ ์ด๊ณ ์์ ํ ํฐ๋์ ๋๋ค. Un tunnel stable et sรฉcurisรฉ basรฉ sur KCP avec multiplexage N:M et FEC.