cosmo
graphql-go-tools
cosmo | graphql-go-tools | |
---|---|---|
9 | 27 | |
530 | 638 | |
8.0% | 2.0% | |
9.9 | 9.6 | |
about 6 hours ago | 2 days ago | |
TypeScript | 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.
cosmo
-
Ask HN: Startup founders, How did you get your first customer?
At the very beginning, I was a solo founder and put my project WunderGraph (https://github.com/wundergraph/cosmo) on GitHub.
After a while, a CTO contacted me and asked if I could "support" his team and add some features that he wanted. After a month of sweating, we agreed that they'd pay me a monthly support subscription of $2k.
I learned a lot from the use cases, improved the software, and got some more users, which ultimately was enough of a story for VCs to raise a $3M seed round, which I think is quite cool as a first-time founder from Germany with zero connections, no YC friends, etc...
I quickly realized that I could not pull this off alone, so I teamed up with 3 fantastic Co-Founders who are responsible for the business side, marketing, sales, and engineering.
Fast forward two years and we're growing our customer base at a great pace and are slowly looking towards a Series A. I can tell though that the way from our first customer to where we are now was extremely tough. We're in enterprise sales, we had to switch our strategy at some point. Lots of learning, lots of pain.
In retrospect, I wouldn't say that the first customer is the hardest. Building a repeatable sales motion is much harder. Building a product, marketing, and sales process that all aligns well for repeatable sales is a lot of work.
Whoever tries this, good luck and please connect if you need help as a founder or want some advice. I love to help others to start their own business. It's hard, but it's also a life that I don't want to miss.
-
GraphQL Federation Field-level Metrics 101
👉 Cosmo on GitHub: The code
-
Introducing astjson: Transform and Merge JSON Objects with Unmatched Speed in Go
By leveraging the astjson package, we were able to speed up our GraphQL API Gateway (Cosmo Router) while reducing the memory footprint. At the macro level, we were able to increase requests per second by 23% and reduced p99 latency by 44% over the previous version of Cosmo Router. At the micro level, we reduced the memory usage of a benchmark by 60%.
-
A Blazingly Fast Open-Source Federation V1/V2 Gateway
To learn more, go check out their docs here. Also, the WunderGraph Discord can be found here, if you have questions or issues you want to discuss.
-
Cosmo Router: High Performance Federation v1 & v2 Router / Gateway
For the future, we're working hard on adding compatibility with Federation 2.x features, If you find any bugs or have feature requests, please open an issue on GitHub.
-
WunderGraph Cosmo: a open source alternative to Apollo Federation, GraphOS, Studio, etc...
If you want to learn more about Cosmo, check out the documentation.
- Show HN: Cosmo – OSS Alternative to Apollo Federation / GraphOS
graphql-go-tools
-
Scaling GraphQL Subscriptions in Go with Epoll and Event Driven Architecture
If you're interested in the full implementation of the resolver, you can find it on GitHub.
-
Optimizing Go string operations with practical examples
https://github.com/wundergraph/graphql-go-tools/blob/dcd50bd...
Each iteration of this benchmark measures the aggregate performance of
- 1x ParseObject
- 3x AppendObject
- 3x MergeNodesWithPath
- 1x PrintNode
- 1x bytes.Equal comparison of two byte slices
The benchmark isn't actually benchmarking MergeNodesWithPath, it's benchmarking a much larger composite operation, which includes (multiple) calls to MergeNodesWithPath but also all of the above listed calls as well. If you want to measure MergeNodesWithPath, you would need to have each iteration of the loop do a single MergeNodesWithPath call, on the same JSON method receiver, and with the same input parameters.
-
Introducing astjson: Transform and Merge JSON Objects with Unmatched Speed in Go
You can check out the full code including tests and benchmarks on GitHub. It's part of graphql-go-tools, the GraphQL Router / API Gateway framework we've been working on for the last couple of years. It's the "Engine" that powers the Cosmo Router.
- GraphQL Router / API Gateway Framework Written in Golang
-
Building a high performance JSON parser
I've taken a very similar approach and built a GraphQL tokenizer and parser (amongst many other things) that's also zero memory allocations and quite fast. In case you'd like to check out the code: https://github.com/wundergraph/graphql-go-tools
-
A Blazingly Fast Open-Source Federation V1/V2 Gateway
The Cosmo Router is powered by graphql-go-tools, a highly mature and optimized GraphQL engine (MIT License) that is the fastest and most reliable implementation for Federation V1. The Cosmo Router builds on it with its own optimizations.
-
Cosmo Router: High Performance Federation v1 & v2 Router / Gateway
Cosmo Router is built on top of graphql-go-tools, a high performance GraphQL engine written in Go.
-
WunderGraph Cosmo: a open source alternative to Apollo Federation, GraphOS, Studio, etc...
For more than five years, we've been involved in the GraphQL ecosystem, building tools and services around GraphQL, like [graphql-go-tools (https://github.com/wundergraph/graphql-go-tools), a library to build GraphQL Gateways in Go.
-
Introducing Open Federation - a MIT-Licensed specification to build federated GraphQL APIs
I've been working on this library for more than 5 years now and it has been a great success. Almost 3 years ago, I started adding support for Apollo Federation to graphql-go-tools. As excited as I was about the idea of Federation, the community was not ready for it yet. I've added support for Subscriptions years ago, but demand for it was very low, so my focus shifted to solving other problems.
-
I want to contribute to open-source software written in Go
Check us out: https://github.com/wundergraph/graphql-go-tools
What are some alternatives?
federation-benchmarks - Comparison of a different federation gateways, e.g. supergraphs implementations
bramble - The Movio GraphQL Gateway
polyglot-persistence-postgresql-mysql-graphql - This repo demonstrates how to achieve polyglot persistence for PostgreSQL & MySQL using GraphQL as the layer of abstraction.
schema-stitching-handbook - Guided examples exploring GraphQL Tools v6+ Schema Stitching
graphql-transform-federation - Convert your existing GraphQL schema into a federated schema
gateway - A federated api gateway for graphql services. https://gateway.nautilus.dev/
xcaddy - Build Caddy with plugins
wundergraph - WunderGraph is a Backend for Frontend Framework to optimize frontend, fullstack and backend developer workflows through API Composition.
prometheus - The Prometheus monitoring system and time series database.
gqlparser - A port of the parser from graphql-js into golang
Caddy - Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
participle - A parser library for Go