# erlang + Zig with Unix domain socket ``` erl 25 zig 0.13.0 (l)ubuntu 22.04 lts // in terminal 1 $ zig build-exe socktest.zig -O ReleaseFast --library c -femit-bin=socktest $ rm -f /tmp/socktest.sock $ ./socktest Zig server is listening /tmp/socktest.sock // in terminal 2 $ ls -la /tmp/socktest.sock srwxrwxr-x 1 e e 0 сер 7 20:38 /tmp/socktest.sock= $ lsof /tmp/socktest.sock COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME socktest 1929355 e 3u unix 0x00000000e2e74e16 0t0 14115541 /tmp/socktest.sock type=STREAM $ erl 1> c(socktest). {ok,socktest} 2> socktest:send("hello"). <<"Hello World (by Zig) !">> 3> socktest:send("factorial 5"). <<"factorial(5) = 120">> 4> socktest:send("factorial 20"). <<"factorial(20) = 2432902008176640000">> 5> socktest:send("factorial 34"). <<"factorial(34) = 295232799039604140847618609643520000000">> 6> socktest:send("factorial 35"). <<"error: input too large, max is 34">> 7> socktest:send("factorial -5"). <<"error: invalid number">> 8> socktest:send("factorial xyz"). <<"error: invalid number">> 9> q(). ok // in terminal 1 we can see ./socktest Zig server is listening /tmp/socktest.sock client connected receive msg: hello client connected receive msg: factorial 5 client connected receive msg: factorial 20 client connected receive msg: factorial 34 client connected receive msg: factorial 35 client connected receive msg: factorial -5 client connected receive msg: factorial xyz ```