[HN Gopher] Show HN: I built a JSON-RPC library for Zig with com...
       ___________________________________________________________________
        
       Show HN: I built a JSON-RPC library for Zig with compile time
       reflection
        
       Doing dynamic dispatching in a strict static typing language is
       hard. Something as simple as,                 map.put("add", add);
       map.put("hello", hello);            fn add(a: i32, b: i32) i32 {
       return a + b; }       fn hello() []const u8      { return "Hello
       World"; }       is impossible because the value type of key/value
       of the map needs to be the same but all the function types are
       different. Calling functions with different number of parameters,
       different parameter types, and different return type dynamically is
       difficult.  Other languages either use dynamic typing, runtime
       reflection, macro, or passing in one big generic parameter and let
       the function figure it out.  In ZigJR, I use Zig's comptime feature
       to do compile time reflection to figure out a function's parameter
       types, return types, and return errors. I package them up into a
       specific call object and use the interface pattern to produce a
       uniformly typed object to be put into the map. It's not easy but
       doable. [1]  [1]
       https://github.com/williamw520/zigjr/blob/master/src/rpc/jso...
        
       Author : ww520
       Score  : 4 points
       Date   : 2025-06-26 18:24 UTC (4 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       ___________________________________________________________________
       (page generated 2025-06-26 23:01 UTC)