smi-spec VS gRPC

Compare smi-spec vs gRPC and see what are their differences.

smi-spec

Service Mesh Interface (by servicemeshinterface)

gRPC

The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) (by grpc)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
smi-spec gRPC
12 201
1,047 40,733
- 0.5%
2.7 9.9
7 months ago 7 days ago
Makefile C++
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

smi-spec

Posts with mentions or reviews of smi-spec. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-08.
  • A Comprehensive Guide to API Gateways, Kubernetes Gateways, and Service Meshes
    9 projects | dev.to | 8 Jun 2023
    The Service Mesh Interface (SMI) specification was created to solve this portability issue.
  • Service Mesh Use Cases
    2 projects | news.ycombinator.com | 11 Feb 2023
    > I suspect if a Service Mesh is ultimately shown to have broad value, one will make it's way into the K8S core

    I'm not so sure. I suspect it'll follow the same roadmap as Gateway API, which it already kind of is with the Service Mesh Interface (https://smi-spec.io/)

  • Service Mesh Considerations
    7 projects | dev.to | 14 Dec 2022
    It is very common that a service mesh deploys a control plane and a data plane. The control plane does what you might expect; it controls the service mesh and gives you the ability to interact with it. Many service meshes implement the Service Mesh Interface (SMI) which is an API specification to standardize the way cluster operators interact with and implement features.
  • Kubernetes: Cross-cluster traffic scheduling - Access control
    2 projects | dev.to | 11 Dec 2022
    Before we start, let's review the SMI Access Control Specification. There are two forms of traffic policies in osm-edge: Permissive Mode and Traffic Policy Mode. The former allows services in the mesh to access each other, while the latter requires the provision of the appropriate traffic policy to be accessible.
  • Announcing osm-edge 1.1: ARM support and more
    7 projects | dev.to | 28 Jul 2022
    osm-edge is a simple, complete, and standalone service mesh and ships out-of-the-box with all the necessary components to deploy a complete service mesh. As a lightweight and SMI-compatible Service Mesh, osm-edge is designed to be intuitive and scalable.
  • KubeCon 2022 - Jour 1
    2 projects | dev.to | 18 May 2022
  • Kubernetes State Of The Union — KubeCon 2019, San Diego
    3 projects | /r/kubernetes | 21 Mar 2022
    I started on Monday, attending ServiceMeshCon2019. My guesstimate is that about 1000 people attended it. I believe Service Mesh is playing such a crucial role in scaling cloud native technologies that large scale cloud-native deployments may not be possible without service mesh. Just like you cannot really succeed in deploying a microservices based application without a microservices orchestration engine, like Kubernetes, you cannot scale the size and capacity of a microservices-based application without service mesh. That’s what makes it so compelling to see all the service mesh creators — Istio, Linkerd, Consul, Kuma — and listen to them. There was also a lot of discussion of SMI (Service Mesh Interface) — a common interface among all services mesh. The panel at the end of the day included all the major service mesh players, and some very thought provoking questions were asked and answered by the panel.
  • GraphQL - Usecase and Architecture
    8 projects | dev.to | 29 Jul 2021
    Do you need a Service Mesh?
  • Introducing the Cloud Native Compute Foundation (CNCF)
    6 projects | dev.to | 13 Jul 2021
    In the episode with Annie, she gave a great overview of the CNCF and a handful of projects that she's excited about. Those include Helm, Linkerd, Kudo, Keda and Artifact Hub. I gave a bonus example of the Service Mesh Interface project.
  • Service Mesh Interface
    2 projects | dev.to | 2 May 2021
    SMI official website: https://smi-spec.io

gRPC

Posts with mentions or reviews of gRPC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-03.
  • Golang: out-of-box backpressure handling with gRPC, proven by a Grafana dashboard
    4 projects | dev.to | 3 Apr 2024
    gRPC, built on HTTP/2, inherently supports flow control. The server can push updates, but it must also respect flow control signals from the client, ensuring that it doesn't send data faster than what the client can handle.
  • Reverse Engineering Protobuf Definitions from Compiled Binaries
    5 projects | news.ycombinator.com | 9 Mar 2024
    Yes, grpc_cli tool uses essentially the same mechanism except implemented as a grpc service rather than as a stubby service. The basic principle of both is implementing the C++ proto library's DescriptorDatabase interface with cached recursive queries of (usually) the server's compiled in FileDescriptorProtos.

    See also https://github.com/grpc/grpc/blob/master/doc/server-reflecti...

    The primary difference between what grpc does and what stubby does is that grpc uses a stream to ensure that the reflection requests all go to the same server to avoid incompatible version skew and duplicate proto transmissions. With that said, in practice version skew is rarely a problem for grpc_cli style "issue a single RPC" usecases: even if requests do go to two or more different versions of a binary that might have incompatible proto graphs, it is very common for the request and response and RPC to all be in the same proto file so you only need to make one RPC in the first place unless you're using an extension mechanism like proto2 extensions or google.protobuf.Any.

  • Delving Deeper: Enriching Microservices with Golang with CloudWeGo
    7 projects | dev.to | 22 Feb 2024
    While gRPC and Apache Thrift have served the microservice architecture well, CloudWeGo's advanced features and performance metrics set it apart as a promising open source solution for the future.
  • gRPC Name Resolution & Load Balancing on Kubernetes: Everything you need to know (and probably a bit more)
    5 projects | dev.to | 6 Feb 2024
    The loadBalancingConfig is what we use in order to decide which policy to go for (round_robin in this case). This JSON representation is based on a protobuf message, then why does the name resolver returns it in the JSON format? The main reason is that loadBalancingConfig is a oneof field inside the proto message and so it can not contain values unknown to the gRPC if used in the proto format. The JSON representation does not have this requirement so we can use a custom loadBalancingConfig .
  • Dart on the Server: Exploring Server-Side Dart Technologies in 2024
    4 projects | dev.to | 30 Jan 2024
    The Dart implementation of gRPC which puts mobile and HTTP/2 first. It's built and maintained by the Dart team. gRPC is a high-performance RPC (remote procedure call) framework that is optimized for efficient data transfer.
  • Usando Spring Boot RestClient
    4 projects | dev.to | 30 Jan 2024
  • How to Build & Deploy Scalable Microservices with NodeJS, TypeScript and Docker || A Comprehesive Guide
    13 projects | dev.to | 25 Jan 2024
    gRPC is a high-performance, open-source RPC (Remote Procedure Call) framework initially developed by Google. It uses Protocol Buffers for serialization and supports bidirectional streaming.
  • Actual SSH over HTTPS
    9 projects | news.ycombinator.com | 23 Dec 2023
    In general, tunneling through HTTP2 turns out to be a great choice. There is a RPC protocol built on top of HTTP2: gRPC[1].

    This is because HTTP2 is great at exploiting a TCP connection to transmit and receive multiple data structures concurrently - multiplexing.

    There may not be a reason to use HTTP3 however, as QUIC already provides multiplexing.

    I expect that in the future most communications will be over encrypted HTTP2 and QUIC simply because middleware creators can not resist to discriminate.

    [1] <https://grpc.io>

  • Why gRPC is not natively supported by Browsers
    1 project | dev.to | 17 Dec 2023
    Even in the https://grpc.io blog says this
  • SGSG (Svelte + Go + SQLite + gRPC) - open source application
    5 projects | /r/sveltejs | 6 Dec 2023
    gRPC

What are some alternatives?

When comparing smi-spec and gRPC you can also consider the following projects:

cni - Container Network Interface - networking for Linux containers

ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1

cloudwithchris.com - Cloud With Chris is my personal blogging, podcasting and vlogging platform where I talk about all things cloud. I also invite guests to talk about their experiences with the cloud and hear about lessons learned along their journey.

Apache Thrift - Apache Thrift

emissary - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

Cap'n Proto - Cap'n Proto serialization/RPC system - core tools and C++ library

pipy - Pipy is a programmable proxy for the cloud, edge and IoT.

zeroRPC - zerorpc for python

osm-edge - osm-edge is a lightweight service mesh for the edge-computing. It's forked from openservicemesh/osm and use pipy as sidecar proxy.

rpclib - rpclib is a modern C++ msgpack-RPC server and client library

kubefed - Kubernetes Cluster Federation

nanomsg - nanomsg library