Here's a video showing how to create and start a Golf application server, and how to connect to it and make requests from a C client (or from any language that supports C API extension): https://www.youtube.com/watch?v=P2bdPP-3ZMY&embedable=true Here’s a step-by-step in case you’re not a video person. Create a new directory for the Golf server and also for the C API client: mkdir -p srv-example cd srv-example mkdir -p client Create file "srv.golf" and copy this: begin-handler /srv public silent-header @Hello world! end-handler Create a Golf application server: gg -k hello Build Golf application server (exclude client directory as it contains C API client): gg -q --exclude-dir=client Start the application server (a single-process server in this case): mgrg -w 1 hello Next, go to the C API client directory: cd client Then create a C file "cli.c" and copy this: #include "gcli.h" int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params); int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params) { memset ((char*)req, 0, sizeof(gg_cli)); req->server = connection; req->req_method = method; req->app_path = app_path; req->req = request; req->url_params = url_params; return gg_cli_request (req); } void main () { int i; for (i = 0; i < 100000; i++) { gg_cli req; int res = golf_client (&req, "/var/lib/gg/hello/sock/sock", "GET", "/hello", "/srv", "/"); if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", gg_cli_data(&req)); gg_cli_delete(&req); } } Compile the client: gcc -o cli cli.c $(gg -i) -O3 Run it: ./cli The result is "Hello world!" 1,000,000 times from each request invocation. Learn about Golf atgolf-lang.com Here's a video showing how to create and start a Golf application server, and how to connect to it and make requests from a C client (or from any language that supports C API extension): https://www.youtube.com/watch?v=P2bdPP-3ZMY&embedable=true https://www.youtube.com/watch?v=P2bdPP-3ZMY&embedable=true Here’s a step-by-step in case you’re not a video person. Create a new directory for the Golf server and also for the C API client: mkdir -p srv-example cd srv-example mkdir -p client mkdir -p srv-example cd srv-example mkdir -p client Create file "srv.golf" and copy this: begin-handler /srv public silent-header @Hello world! end-handler begin-handler /srv public silent-header @Hello world! end-handler Create a Golf application server: gg -k hello gg -k hello Build Golf application server (exclude client directory as it contains C API client): gg -q --exclude-dir=client gg -q --exclude-dir=client Start the application server (a single-process server in this case): mgrg -w 1 hello mgrg -w 1 hello Next, go to the C API client directory: cd client cd client Then create a C file "cli.c" and copy this: #include "gcli.h" int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params); int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params) { memset ((char*)req, 0, sizeof(gg_cli)); req->server = connection; req->req_method = method; req->app_path = app_path; req->req = request; req->url_params = url_params; return gg_cli_request (req); } void main () { int i; for (i = 0; i < 100000; i++) { gg_cli req; int res = golf_client (&req, "/var/lib/gg/hello/sock/sock", "GET", "/hello", "/srv", "/"); if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", gg_cli_data(&req)); gg_cli_delete(&req); } } #include "gcli.h" int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params); int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params) { memset ((char*)req, 0, sizeof(gg_cli)); req->server = connection; req->req_method = method; req->app_path = app_path; req->req = request; req->url_params = url_params; return gg_cli_request (req); } void main () { int i; for (i = 0; i < 100000; i++) { gg_cli req; int res = golf_client (&req, "/var/lib/gg/hello/sock/sock", "GET", "/hello", "/srv", "/"); if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", gg_cli_data(&req)); gg_cli_delete(&req); } } Compile the client: gcc -o cli cli.c $(gg -i) -O3 gcc -o cli cli.c $(gg -i) -O3 Run it: ./cli ./cli The result is "Hello world!" 1,000,000 times from each request invocation. Learn about Golf at golf-lang.com golf-lang.com