Round 369: GraphQL ext, gRPC ext, Protobuf ext, Avro/Serialization ext (20 commands)

ober

ea794334c6952c9a3120c81403c9fd639dd70701

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 56def1e..1b1198f 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 369 — GraphQL ext, gRPC ext, Protobuf ext, Avro/Serialization ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| GraphQL display schema | `graphql-mode` | `graphql-schema` | :orange_circle: Scaffolded |
+| GraphQL subscribe | — | `graphql-subscribe` | :orange_circle: Scaffolded |
+| GraphQL federation check | — | `graphql-federation` | :orange_circle: Scaffolded |
+| GraphQL persisted queries | — | `graphql-persisted` | :orange_circle: Scaffolded |
+| gRPC list services | `grpc-mode` | `grpc-list` | :orange_circle: Scaffolded |
+| gRPC describe service | — | `grpc-describe` | :orange_circle: Scaffolded |
+| gRPC health check | — | `grpc-health` | :orange_circle: Scaffolded |
+| gRPC server reflection | — | `grpc-reflect` | :orange_circle: Scaffolded |
+| Protobuf breaking changes | `buf` | `protobuf-breaking` | :orange_circle: Scaffolded |
+| Protobuf generate stubs | — | `protobuf-generate` | :orange_circle: Scaffolded |
+| Protobuf dependencies | — | `protobuf-deps` | :orange_circle: Scaffolded |
+| Protobuf schema registry | — | `protobuf-registry` | :orange_circle: Scaffolded |
+| Avro display schema | — | `avro-schema` | :orange_circle: Scaffolded |
+| Avro encode data | — | `avro-encode` | :orange_circle: Scaffolded |
+| Avro decode data | — | `avro-decode` | :orange_circle: Scaffolded |
+| Avro schema registry | — | `avro-registry` | :orange_circle: Scaffolded |
+| Cap'n Proto decode | — | `capnproto-decode` | :orange_circle: Scaffolded |
+| Cap'n Proto encode | — | `capnproto-encode` | :orange_circle: Scaffolded |
+| Amazon Ion encode | — | `ion-encode` | :orange_circle: Scaffolded |
+| Amazon Ion decode | — | `ion-decode` | :orange_circle: Scaffolded |
+
 ### Round 368 — MQTT ext, AMQP ext, NSQ ext, RabbitMQ/ActiveMQ ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bb072b1..17f84fd 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -26415,3 +26415,44 @@
 (def (cmd-activemq-topics app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "ActiveMQ: listing topics")))
+
+;; Round 369 batch 2 — Protobuf ext, Avro/Serialization ext
+(def (cmd-protobuf-deps app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: analyzing dependencies")))
+
+(def (cmd-protobuf-registry app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: querying schema registry")))
+
+(def (cmd-avro-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: displaying schema")))
+
+(def (cmd-avro-encode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: encoding data")))
+
+(def (cmd-avro-decode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: decoding data")))
+
+(def (cmd-avro-registry app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Avro: querying schema registry")))
+
+(def (cmd-capnproto-decode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: decoding message")))
+
+(def (cmd-capnproto-encode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Cap'n Proto: encoding message")))
+
+(def (cmd-ion-encode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Amazon Ion: encoding data")))
+
+(def (cmd-ion-decode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Amazon Ion: decoding data")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 48d2bd3..57978ee 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27180,3 +27180,48 @@
 (def (cmd-pulsar-sinks app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Pulsar: listing sinks")))
+
+;; Round 369 batch 1 — GraphQL ext, gRPC ext
+(def (cmd-graphql-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: displaying schema")))
+
+(def (cmd-graphql-subscribe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Subscription name: "
+      (lambda (name)
+        (echo-message! echo (str "GraphQL: subscribing to " name))))))
+
+(def (cmd-graphql-federation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: checking federation composition")))
+
+(def (cmd-graphql-persisted app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GraphQL: managing persisted queries")))
+
+(def (cmd-grpc-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "gRPC: listing services")))
+
+(def (cmd-grpc-describe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Service name: "
+      (lambda (svc)
+        (echo-message! echo (str "gRPC: describing " svc))))))
+
+(def (cmd-grpc-health app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "gRPC: checking health status")))
+
+(def (cmd-grpc-reflect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "gRPC: server reflection")))
+
+(def (cmd-protobuf-breaking app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: checking for breaking changes")))
+
+(def (cmd-protobuf-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Protobuf: generating code stubs")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 03e75b8..5169269 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9200,4 +9200,26 @@
   (register-command! 'rabbitmq-trace cmd-rabbitmq-trace)
   (register-command! 'activemq-queues cmd-activemq-queues)
   (register-command! 'activemq-topics cmd-activemq-topics)
+
+  ;; Round 369 — GraphQL ext, gRPC ext, Protobuf ext, Avro/Serialization ext
+  (register-command! 'graphql-schema cmd-graphql-schema)
+  (register-command! 'graphql-subscribe cmd-graphql-subscribe)
+  (register-command! 'graphql-federation cmd-graphql-federation)
+  (register-command! 'graphql-persisted cmd-graphql-persisted)
+  (register-command! 'grpc-list cmd-grpc-list)
+  (register-command! 'grpc-describe cmd-grpc-describe)
+  (register-command! 'grpc-health cmd-grpc-health)
+  (register-command! 'grpc-reflect cmd-grpc-reflect)
+  (register-command! 'protobuf-breaking cmd-protobuf-breaking)
+  (register-command! 'protobuf-generate cmd-protobuf-generate)
+  (register-command! 'protobuf-deps cmd-protobuf-deps)
+  (register-command! 'protobuf-registry cmd-protobuf-registry)
+  (register-command! 'avro-schema cmd-avro-schema)
+  (register-command! 'avro-encode cmd-avro-encode)
+  (register-command! 'avro-decode cmd-avro-decode)
+  (register-command! 'avro-registry cmd-avro-registry)
+  (register-command! 'capnproto-decode cmd-capnproto-decode)
+  (register-command! 'capnproto-encode cmd-capnproto-encode)
+  (register-command! 'ion-encode cmd-ion-encode)
+  (register-command! 'ion-decode cmd-ion-decode)
 )