{"id":24435279,"url":"https://github.com/macielti/echo-graalvm","last_synced_at":"2026-05-21T10:33:00.441Z","repository":{"id":273121235,"uuid":"918741388","full_name":"macielti/echo-graalvm","owner":"macielti","description":"A simple Telegram echo bot to experiment with GraalVM native-image and Clojure","archived":false,"fork":false,"pushed_at":"2025-02-02T15:25:01.000Z","size":186,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T16:26:39.004Z","etag":null,"topics":["clojure","graalvm","telegram-bot"],"latest_commit_sha":null,"homepage":"https://github.com/macielti/echo-graalvm","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macielti.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}},"created_at":"2025-01-18T18:28:00.000Z","updated_at":"2025-02-02T15:25:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"feadf73e-e9ab-49a4-861e-ad5467a022cc","html_url":"https://github.com/macielti/echo-graalvm","commit_stats":null,"previous_names":["macielti/echo-graalvm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macielti%2Fecho-graalvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macielti%2Fecho-graalvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macielti%2Fecho-graalvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macielti%2Fecho-graalvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macielti","download_url":"https://codeload.github.com/macielti/echo-graalvm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243489811,"owners_count":20298997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["clojure","graalvm","telegram-bot"],"created_at":"2025-01-20T17:18:56.813Z","updated_at":"2025-12-29T10:56:58.057Z","avatar_url":"https://github.com/macielti.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Compatible with GraalVM](https://img.shields.io/badge/compatible_with-GraalVM-green)\n\n# Echo GraalVM\n\nA simple Telegram bot that echoes messages back to the user.\nThe objective is to experiment with GraalVM while generating native-images from a Clojure application.\n\n**Echoes only text messages**\n\n## Usage\n\nLocal deployment:\n\n1. Clone the repository\n2. Rename the file `resources/config.edn.example` to `resources/config.edn`.\n3. Fill the `resources/config.edn` file with your Telegram bot token.\n4. Run the docker container: `docker compose up -d`\n\n## Experiment Results\n\nA simple Clojure application (a Telegram echo bot) deployed to a Docker container consuming less than 10 MiB of RAM.\n\nTo ensure a fairer comparison, I implemented 3 versions of Docker images:\n\n- **echo-graalvm-distroless**: The version that uses `gcr.io/distroless/base:latest` as the base image.\n- **echo-jvm**: The JVM-based version using `amazoncorretto:23` as the base image.\n- **echo-graalvm**: The GraalVM-based version, also using `amazoncorretto:23` as the base image.\n\n`docker stats` output:\n\n![Docker Stats](doc/docker-stats.png)\n\n## License\n\nCopyright © 2025 Bruno do Nascimento Maciel\n\nThis program and the accompanying materials are made available under the\nterms of the Eclipse Public License 2.0 which is available at\nhttp://www.eclipse.org/legal/epl-2.0.\n\nThis Source Code may also be made available under the following Secondary\nLicenses when the conditions for such availability set forth in the Eclipse\nPublic License, v. 2.0 are satisfied: GNU General Public License as published by\nthe Free Software Foundation, either version 2 of the License, or (at your\noption) any later version, with the GNU Classpath Exception which is available\nat https://www.gnu.org/software/classpath/license.html.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacielti%2Fecho-graalvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacielti%2Fecho-graalvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacielti%2Fecho-graalvm/lists"}