Comments (2)
gaia provides low-level rpc support with focus on performance and scalability. if you need 1M qps per node then gaia is better suited than grpc. See asio_fibers that demonstrates gaia rpc in action. grpc, on the other hand, has more features and is probably better suited for microservices. Google invested dozens of thousands of eng hours into grpc and it covers many languages. gaia rpc is currently c++ only. The open source version of gaia does not include protobuf bindings at the moment and high-level rpc protocol is not implemented.
It's still possible to use gaia to impelement resful backend however I did not design any high level classes for this. There is http_main binary that demonstrates how to register http handlers but again I did not invest much effort into designing a convenient RESTful framework. I am using http mainly for debugging and monitoring purposes.
There is also https client code that I recently wrote for connecting to GCS API.
To summarize, gaia can support everything you need but it's not out of the box. If you need to connect to k8s APIs you need to implement them yourself similarly to how I connected GCE/GCS.
if you need to develop a RESTful backend, you will need to think about what functionality is missing and implement it. Gaia will provide you with the framework to implement asynchronous computations and use multiple cores efficiently. If efficiency is not your priority than golang, python or java is better option :)
from gaia.
FYI, currently, the only "industrial-grade" open-source descendent of GAIA is GAIA-MR that uses GAIA library underneath to expose high-level MapReduce framework.
from gaia.
Related Issues (13)
- More helpful docs. HOT 1
- add documentation on how to build dockerized binaries HOT 2
- participate Hacktoberfest and add more issues labeled Hacktoberfest/good first issue
- introduce gaia custom error messages HOT 1
- GAIA fails sometimes to write a file to GCS HOT 1
- asio::ssl introduces 2 redundant copies HOT 1
- Work stealing mappers HOT 1
- implement mrprint instead of pprint with sptaskpool
- merge MapperExecutor::GetStats and metric_map_ logic HOT 1
- partial pipeline run
- logs should include a fiber id HOT 3
- Stupid question HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gaia.