{"id":28320702,"url":"https://github.com/hwakabh/echo-server","last_synced_at":"2026-03-02T07:32:19.848Z","repository":{"id":213147948,"uuid":"215145631","full_name":"hwakabh/echo-server","owner":"hwakabh","description":"Implementation of socket connection with C Language for personal workouts.","archived":false,"fork":false,"pushed_at":"2025-11-26T15:53:26.000Z","size":207,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-29T13:21:34.960Z","etag":null,"topics":["bazel","c","distroless"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hwakabh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-10-14T21:08:19.000Z","updated_at":"2025-11-26T15:53:29.000Z","dependencies_parsed_at":"2023-12-18T22:24:33.974Z","dependency_job_id":"3b0e7063-9199-47b4-90be-a00e2a126afb","html_url":"https://github.com/hwakabh/echo-server","commit_stats":null,"previous_names":["hwakabh/c-tcpd","hwakabh/echo-server"],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/hwakabh/echo-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Fecho-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Fecho-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Fecho-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Fecho-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hwakabh","download_url":"https://codeload.github.com/hwakabh/echo-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hwakabh%2Fecho-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bazel","c","distroless"],"created_at":"2025-05-25T11:12:04.827Z","updated_at":"2026-03-02T07:32:19.832Z","avatar_url":"https://github.com/hwakabh.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# echo-server\nImplementation of socket connection with C Language for personal workouts.\n\n\u003c!-- *** --\u003e\n## Usage\n\n```shell\n% ./echo-server.bin 8088\nServing HTTP on 0.0.0.0 port 8088 (http://0.0.0.0:8088/) ...\nQuit the server with CONTROL-C.\n```\n\nIn other terminal window:\n\n```shell\n% curl --http0.9 -X GET localhost:8088/ -d 'hello!' ; echo\nGET / HTTP/1.1\nHost: localhost:8088\nUser-Agent: curl/8.7.1\nAccept: */*\nContent-Length: 6\nContent-Type: application/x-www-form-urlencoded\n\nhello!\n```\n\n\u003c!-- *** --\u003e\n## Configurations\nEnvironmental Variables...etc\n\n\u003c!-- *** --\u003e\n## Build from source\nAs there are several ways to build echo-server application on your machine. \\\nIn this project, we will expect to use [bazel](https://bazel.build) as build tools.\n\n```shell\n% git clone git@github.com:hwakabh/echo-server.git\n\n# Run all targets at the same time\n% bazel build //...\n\n# If you would like to build single binaries on your machine\n% bazel build //src:bin -- 8088\n\n# (Optional) Clean up build artifacts on your machine\n% bazel clean\n```\n\nor, of course you can directly invoke `gcc` for application compiles/linkings, \\\nonce you clone the sources from repository:\n\n```shell\n# Create object files\n% gcc -Wall -c src/echo-server.c\n% gcc -Wall -c src/helpers.c\n\n# Link object files\n% gcc -Wall *.o -o echo-server.bin\n\n# Run app with printing help\n% ./echo-server.bin --help\n\n# (Optional) Clean up object files \u0026 binary on your machine\n% rm ./echo-server.bin ./echo-server.o ./helpers.o\n```\n\n\u003c!-- *** --\u003e\n## Distributions\nWe have prepared echo-server application with following form-factors, so in case just you would like to play with application, \\\nyou can available with the following distributions.\n\n### GitHub Release\nIn release pipeline, we are preparing the single binaries for each platform with several CPU architectures, and this will be publised as GitHub Releases. \\\nYou can see all of the releases via [Release page](https://github.com/hwakabh/echo-server/releases) of this repo, and all of them are available with downloading directly.\n\n```shell\n% export RELEASE_VERSION='v0.3.11'\n% curl -L -o echo-server.bin https://github.com/hwakabh/echo-server/releases/download/${RELEASE_VERSION}/echo-server_darwin-aarch64-${RELEASE_VERSION}\n% chmod 744 ./echo-server.bin\n```\n\n### GitHub Packages\nSame as general container image registries, such as Docker Hub, you can pull the image from [GitHub Container Registry (ghcr.io)](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). \\\nThe images have been stored in ghcr.io as GitHub Packages, so you can all revisions with accessing [Packages page](https://github.com/hwakabh/echo-server/pkgs/container/echo-server) of this repo.\n\n```shell\n% docker image pull ghcr.io/hwakabh/echo-server:latest\n% docker run -d -p 8088:8088 ghcr.io/hwakabh/echo-server:latest\n```\n\n### load OCI container images from sources\nAs we have bundled Bazel rules [`rules_oci`](https://github.com/bazel-contrib/rules_oci) for managing [OCI images](https://github.com/opencontainers/image-spec) with code bases, \\\nyou can build the images from sources with `bazel` commands:\n\n```shell\n# If you would like to load application OCI image onto your docker\n% bazel run //src:load\nINFO: Analyzed target //src:load (0 packages loaded, 0 targets configured).\nINFO: Found 1 target...\nTarget //src:load up-to-date:\n  bazel-bin/src/load.sh\nINFO: Elapsed time: 0.108s, Critical Path: 0.00s\nINFO: 1 process: 4 action cache hit, 1 internal.\nINFO: Build completed successfully, 1 total action\nINFO: Running command line: bazel-bin/src/load.sh\nLoaded image: ghcr.io/hwakabh/echo-server:local\n\n% docker images ghcr.io/hwakabh/echo-server\nREPOSITORY                    TAG       IMAGE ID       CREATED   SIZE\nghcr.io/hwakabh/echo-server   local     9582b4a2d316   N/A       6.17MB\n```\n\n\u003c!-- *** --\u003e\n## Credits\nImplementation references on:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwakabh%2Fecho-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhwakabh%2Fecho-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhwakabh%2Fecho-server/lists"}