{"id":23157204,"url":"https://github.com/antonijn/cheax","last_synced_at":"2025-08-17T23:32:57.264Z","repository":{"id":49328342,"uuid":"58740024","full_name":"antonijn/cheax","owner":"antonijn","description":"A Lisp dialect with C API, REPL and standard library","archived":false,"fork":false,"pushed_at":"2025-07-02T19:10:54.000Z","size":1134,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T20:25:43.409Z","etag":null,"topics":["api","c","interpreter","library","lisp"],"latest_commit_sha":null,"homepage":"https://www.adblom.net/cheax","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antonijn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2016-05-13T12:49:37.000Z","updated_at":"2025-07-02T19:10:59.000Z","dependencies_parsed_at":"2025-07-02T20:33:04.790Z","dependency_job_id":null,"html_url":"https://github.com/antonijn/cheax","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/antonijn/cheax","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonijn%2Fcheax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonijn%2Fcheax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonijn%2Fcheax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonijn%2Fcheax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antonijn","download_url":"https://codeload.github.com/antonijn/cheax/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonijn%2Fcheax/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270922510,"owners_count":24668565,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"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":["api","c","interpreter","library","lisp"],"created_at":"2024-12-17T21:16:34.186Z","updated_at":"2025-08-17T23:32:56.959Z","avatar_url":"https://github.com/antonijn.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"cheax\n=====\n\n[![Build status](https://github.com/antonijn/cheax/actions/workflows/build-test.yml/badge.svg)](https://github.com/antonijn/cheax/actions)\n\nA Lisp dialect that looks a bit like Haskell. Designed for easy\ninteroperability with C/C++.\n\nInstallation\n------------\n\n```sh\n$ mkdir build \u0026\u0026 cd build \u0026\u0026 cmake .. \u0026\u0026 make\n# make install\n```\n\nLanguage demo\n-------------\n![Made with VHS](https://vhs.charm.sh/vhs-4S0HmQsFAYuSxQuZ6i1HJE.gif)\n\nC API example\n-------------\n\n```C\n#include \u003ccheax.h\u003e\n#include \u003cstdio.h\u003e\n\nint main(void)\n{\n\tint result;\n\tCHEAX *c = cheax_init();\n\n\t/* Load some \"unsafe\" functions, e.g. file io and the program\n\t * exit function */\n\tcheax_load_feature(c, \"all\");\n\n\t/* Make sure cheax doesn't cause a stack overflow */\n\tcheax_config_int(c, \"stack-limit\", 4096);\n\n\t/* Load the standard library */\n\tif (cheax_load_prelude(c) \u003c 0) {\n\t\t/* Display error message on behalf of \"example\" program */\n\t\tcheax_perror(c, \"example\");\n\t\treturn EXIT_FAILURE;\n\t}\n\n\t/* Synchronize variable `result' with the eponymous symbol\n\t * in cheax */\n\tcheax_sync_int(c, \"result\", \u0026result, 0);\n\n\tcheax_eval(c, cheax_readstr(c, \"(set result (sum (.. 1 100)))\"));\n\n\tcheax_destroy(c);\n\n\tprintf(\"1 + 2 + ... + 100 = %d\\n\", result);\n\treturn 0;\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonijn%2Fcheax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantonijn%2Fcheax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonijn%2Fcheax/lists"}