juliaio/grpcserver.jl/grpcserver-jl-dev

Claude Code and agent skill by juliaio/grpcserver.jl

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Work on the gRPCServer.jl package itself. Covers the repository map, regenerating example and test stubs with protojl (both gRPCServer and gRPCClient loaded), the byte-stability rule, running the test suite, and building the docs. Use when editing files in this repository (src/*.jl, examples/*/server.jl, docs/src/*.md, test/aqua.jl) or debugging the codegen emission, the HTTP/2 backends, or the docs build. For building a server as a user of the package, use the grpcserver-jl skill instead.

Install

npx vskill@latest install juliaio/grpcserver.jl/grpcserver-jl-dev

SKILL.md

Developing gRPCServer.jl

Repository map

PathContents
src/gRPCServer.jlModule entry: includes, exports (incl. protojl, grpc_register_service_codegen, register_method!), __init__ registers the codegen hook
src/codegen.jlThe ProtoBuf.jl codegen hook that emits *_Method, register_<Service>_<Rpc>!, register_<Service>!, and the docstrings
src/dispatch.jlregister_method!, the dispatcher, _validate_method_handler! (registration-time handler validation)
src/server.jlGRPCServer, lifecycle (start!/stop!/run/close), listener kwargs
src/context.jlServerContext (set_header!, set_trailer!, get_metadata*, remaining_time, is_cancelled, cancel!, request_id, payload)
src/streams.jlServerStream / ClientStream / BidiStream, send!, close!
src/errors.jlGRPCError, StatusCode
src/interceptors.jladd_interceptor!, interceptor chain
src/services/*Health (set_health!), reflection
src/compression.jl, src/config.jlCodecs, ServerConfig kwargs
src/http2_backend.jl, src/backends/*, src/framing.jlTransport abstraction (HTTPjl default, PureHTTP2, Nghttp2 ext); backends/capabilities.jl holds the per-backend capability table + validator (backend_capabilities, backend_defaults, UnsupportedFeatureError), backends/entrypoints.jl the backend-fixed constructors GRPCServerHTTPJl / GRPCServerPureHTTP2 / GRPCServerNghttp2
src/tls/*TLS config, reload_tls!, CertificateWatcher
test/test_codegen.jlCodegen test; canonical protojl call form
test/gen/test/test_pb.jlChecked-in regenerated artifact (messages + client stubs + registration in one file)
examples/01..05_*/Five runnable codegen examples (unary, server streaming, client streaming, bidi, multi-method)
docs/Documenter build (docs/make.jl, docs/Project.toml)

The codegen contract (do not break)

The generated output is the package's user-facing interface. Invariants:

  • One protojl run with both gRPCServer and gRPCClient loaded emits messages,

client stubs, and registration functions (the test/gen/test/test_pb.jl shape).

  • Every emitted server-side registration symbol is exported and carries a

static docstring with the typed handler contract.

  • Registration functions come in both argument orders (do-block form works)

plus the aggregate.

  • Emission is byte-stable for a given ProtoBuf + Julia version.

The runtime layer the codegen sits on is documented in docs/src/api.md (all exported symbols — checkdocs = :exports fails if a new export is missing from the @docs blocks) and docs/src/examples/advanced.md (the labeled "runtime interface beneath the codegen" section).

Regenerating example stubs

Run from the example directory with the root project active (the examples have no Project.toml; the root project carries ProtoBuf, gRPCServer, gRPCClient):

bash
cd examples/01_hello_world
julia --project=../.. -e 'using ProtoBuf; using gRPCServer; import gRPCClient; ProtoBuf.protojl("greeter.proto", ".", "generated"; always_use_modules = true, add_kwarg_constructors = true)'

Proto files per example: greeter.proto (01, 02), sum.proto (03), chat.proto (04), calculator.proto (05). Output lands in generated/<package>/ with the module wrapper and <proto>_pb.jl.

Byte-stability gate: after regenerating, run the same command again in a FRESH Julia process and diff -r the two trees. They must be byte-identical. Any diff means a ProtoBuf version drift — pin and redo. Never hand-edit generated files.

Test suite

bash
timeout 3000 julia --project=. -e 'using Pkg; Pkg.test()'

Baseline: 1,023,518 pass / 2 broken / exit 0. The root project has gRPCClient in [deps] (used by the examples and the codegen tests); test/aqua.jl ignores it in the stale-deps check (stale_deps = (; ignore = [:gRPCClient])) because the package itself never loads it. Keep that pair consistent: if gRPCClient ever leaves [deps], drop the Aqua ignore; if it moves to [weakdeps], neither is needed.

Docs build

bash
# first time only: docs env has no committed Manifest
julia --project=docs -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
# then
julia --project=docs docs/make.jl

docs/make.jl uses doctest = false and checkdocs = :exports. Nav order: index → quickstart → code_generation → tls → http2-backends → performance → api → examples. Orphan legacy pages (handlers/getting_started/streaming/ concurrency/security) were deleted — do not re-add them.

Skills and plugin layout

  • skills/grpcserver-jl/ — user-facing skill (codegen interface; the primary

one for porting a project onto gRPCServer.jl).

  • skills/grpcserver-jl-dev/ — this skill (package development).
  • .claude-plugin/{plugin.json, marketplace.json} — Claude Code registry

wiring, mirroring gRPCClient.jl.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
3
Repository forks
1
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/juliaio/grpcserver.jl/grpcserver-jl-dev/badge)](https://verified-skill.com/skills/juliaio/grpcserver.jl/grpcserver-jl-dev)

Something wrong with this skill or its page? Tell us.