{
    "content": "<h1>Understanding <a href=\"..\/GRPC\/\">GRPC<\/a><\/h1>\n<p><a href=\"..\/GRPC\/\">GRPC<\/a> is a modern, open-source high-performance <a href=\"..\/REMOTE-PROCEDURE-CALL\/\">REMOTE PROCEDURE CALL<\/a> (RPC) framework that can run in any environment. Originally developed by <a href=\"..\/GOOGLE\/\">GOOGLE<\/a>, it is now a hosted project of the <a href=\"..\/CLOUD-NATIVE-COMPUTING-FOUNDATION\/\">CLOUD-NATIVE-COMPUTING-FOUNDATION<\/a> (CNCF). It enables client and server applications to communicate transparently and makes it easier to build connected systems.<\/p>\n<p>At the heart of <a href=\"..\/GRPC\/\">GRPC<\/a> lies <a href=\"..\/PROTOCOL-BUFFERS\/\">PROTOCOL-BUFFERS<\/a>, which serves as both its Interface Definition Language (IDL) and its message interchange format. By using a binary format rather than text-based formats like <a href=\"..\/JSON\/\">JSON<\/a>, <a href=\"..\/GRPC\/\">GRPC<\/a> reduces the size of the payload and improves serialization speed. As noted in the <a href=\"https:\/\/grpc.io\/docs\/what-is-grpc\/introduction\/\">official gRPC documentation<\/a>, the framework is designed to work with <a href=\"..\/HTTP2\/\">HTTP2<\/a>, providing features such as bidirectional streaming, flow control, and header compression.<\/p>\n<p>Unlike a traditional <a href=\"..\/REST-API\/\">REST-API<\/a>, which is centered around resources and verbs, <a href=\"..\/GRPC\/\">GRPC<\/a> focuses on service definitions and methods. This makes it highly effective for <a href=\"..\/MICROSERVICES\/\">MICROSERVICES<\/a> architectures where polyglot environments are common. It supports multiple <a href=\"..\/PROGRAMMING-LANGUAGES\/\">PROGRAMMING-LANGUAGES<\/a> including Go, Java, Python, and C++. For more technical details on the transport layer, refer to the <a href=\"https:\/\/github.com\/grpc\/grpc\/blob\/master\/doc\/PROTOCOL-HTTP2.md\">gRPC over HTTP2 specification<\/a> and the <a href=\"https:\/\/www.cncf.io\/blog\/2018\/07\/03\/why-is-grpc-so-popular\/\">CNCF blog<\/a>.<\/p>\n<ul>\n<li><a href=\"..\/MICROSERVICES\/\">MICROSERVICES<\/a><\/li>\n<li><a href=\"..\/PROTOCOL-BUFFERS\/\">PROTOCOL-BUFFERS<\/a><\/li>\n<li><a href=\"..\/HTTP2\/\">HTTP2<\/a><\/li>\n<li><a href=\"..\/REST-API\/\">REST-API<\/a><\/li>\n<\/ul>",
    "tags": [
        "grpc",
        "rpc",
        "api",
        "microservices",
        "protocol-buffers",
        "http2",
        "backend",
        "networking",
        "google",
        "cncf"
    ]
}