Ask HN: Why isn't JSON-RPC more widely adopted?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
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
  • json-api

    A specification for building JSON APIs

  • sick

    Streams of Independent Constant Keys

  • JSON-like data structures do not necessary require a stack automaton for parsing. Moreover it doesn't necessarily require any parsing at all.

    E.g. I've implemented a simple indexed binary format for JSON-like data: https://github.com/7mind/sick

    The problems with JSON-RPC are mostly in its design, it's not ergonomic and its type system is a joke.

    There are many better alternatives ranging from gRPC (still not ergonomic and not modular) to Protoforce (extremely powerful and ergonomic but only marginally adopted).

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • GJSON

    Get JSON values quickly - JSON parser for Go

  • one way could be you peek method using sth like https://github.com/tidwall/gjson

  • grpc-web

    gRPC for Web Clients

  • Personally, find gRPC-Web very attractive but the current state of TypeScript/JS code-gen is very confusing and lacking.

    I would love something like https://orval.dev for gRPC-web. Have I missed something or is it just early to expect it?

    I tried a few libraries but couldn't get them to work or would generate unappealing results. I believe I'm hitting this issue with my local experiments. https://github.com/grpc/grpc-web/issues/535

  • orval

    orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺

  • Personally, find gRPC-Web very attractive but the current state of TypeScript/JS code-gen is very confusing and lacking.

    I would love something like https://orval.dev for gRPC-web. Have I missed something or is it just early to expect it?

    I tried a few libraries but couldn't get them to work or would generate unappealing results. I believe I'm hitting this issue with my local experiments. https://github.com/grpc/grpc-web/issues/535

  • network

    Micro Communication Protocol (MUCP) (by micro)

  • So funny you say this. I think it's the insight of many developers including my own. I hacked together a framework that did this before the existence of GRPC. Now I'm trying to formalise it as a protocol. https://github.com/micro/network/blob/main/PROTOCOL.md

  • jsonrpc

    Jsonrpc module. (by preludejs)

  • We use jsonrpc over websockets in production for many years in trading services. It works very well. We use lightweight libraries that look like this [0] and this [1]. It's lightweight, fast, type safe, easy to maintain and debug etc.

    [0] https://github.com/preludejs/jsonrpc

    [1] https://github.com/preludejs/refute

  • 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.

    InfluxDB logo
  • refute

    Refute module.

  • We use jsonrpc over websockets in production for many years in trading services. It works very well. We use lightweight libraries that look like this [0] and this [1]. It's lightweight, fast, type safe, easy to maintain and debug etc.

    [0] https://github.com/preludejs/jsonrpc

    [1] https://github.com/preludejs/refute

  • NATS

    High-Performance server for NATS.io, the cloud and edge native messaging system.

  • I use JSON-RPC as a standard to command devices that connect to a message bus (I use NATS: https://nats.io/). I wouldn't use it as an alternative to REST or GraphQL, they have different goals/use cases.

  • protobuf-es

    Protocol Buffers for ECMAScript. The only JavaScript Protobuf library that is fully-compliant with Protobuf conformance tests.

  • Ah you should check out https://github.com/bufbuild/protobuf-es which feels great so far. Then there's connect by the same buf people but it has a grpc-web option https://connect.build/docs/web/getting-started/. The amount of code generated is also tiny, which I love.

  • connect-es

    The TypeScript implementation of Connect: Protobuf RPC that works.

  • As for better gRPC-web, you might want to look into connect-web https://github.com/bufbuild/connect-web

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Embedding NATS in Go

    3 projects | dev.to | 23 Feb 2022
  • Golang JSON Gotchas That Drove Me Crazy But I Have Learned to Deal With

    2 projects | /r/golang | 28 Feb 2021
  • Tired of handling a tech stack with REST, SQL, Webpack and 1000 more?

    1 project | news.ycombinator.com | 4 May 2024
  • Show HN: Docker-phobia: Analyze Docker image size with a treemap

    3 projects | news.ycombinator.com | 28 Apr 2024
  • Angular Signals, Reactive Context, and Dynamic Dependency Tracking

    1 project | dev.to | 24 Apr 2024