{"id":28333892,"url":"https://github.com/souleymeine/escape-lib","last_synced_at":"2026-01-28T15:31:17.379Z","repository":{"id":294530669,"uuid":"985241101","full_name":"Souleymeine/escape-lib","owner":"Souleymeine","description":"Another terminal library. Useful for UIs and other forms of graphics, in any of your favorite terminals.","archived":false,"fork":false,"pushed_at":"2026-01-25T13:15:26.000Z","size":188,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-26T05:30:32.150Z","etag":null,"topics":["2d-graphics","c23","cross-platform","dynamic-library","freebsd","gnu-make","library","linux","macos","static-library","terminal-graphics","tui","unix","windows-10","windows-11"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Souleymeine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2025-05-17T10:59:23.000Z","updated_at":"2025-10-23T20:52:10.000Z","dependencies_parsed_at":"2025-07-13T12:20:14.572Z","dependency_job_id":"73ad3108-ada3-4ea9-9c03-8d642c50df16","html_url":"https://github.com/Souleymeine/escape-lib","commit_stats":null,"previous_names":["souleymeine/escape-lib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Souleymeine/escape-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Souleymeine%2Fescape-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Souleymeine%2Fescape-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Souleymeine%2Fescape-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Souleymeine%2Fescape-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Souleymeine","download_url":"https://codeload.github.com/Souleymeine/escape-lib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Souleymeine%2Fescape-lib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["2d-graphics","c23","cross-platform","dynamic-library","freebsd","gnu-make","library","linux","macos","static-library","terminal-graphics","tui","unix","windows-10","windows-11"],"created_at":"2025-05-26T20:56:31.280Z","updated_at":"2026-01-28T15:31:17.373Z","avatar_url":"https://github.com/Souleymeine.png","language":"C","readme":"This project uses semantic versioning : https://semver.org/\n\n## Developpement scheme\nThe project will use the `feature` / `bugfix` / `test` convetion for branch names but adds another one called \"goal\".\nBranch named `goal/something` will contain a few commits setting up a test file which will do something that should be easily achievable using the library but that is not yet implemented. Quick example :\n```C\nvoid cool_test()\n{\n    printf(\n        \"\\x1b[?1049h\\x1b[H\"\n        \"\\x1b[3mThe excitement of creating something new and hopefully useful flows down your veins\\n\"\n        \"as you prepare for the very first commit.\\x1b[23m\\n\\n\\n\\n\"\n        \"\\x1b[1;33m\t\tYou are filled with determination.\\x1b[m\");\n    getchar();\n    printf(\"\\x1b[?1049l\");\n}\n```\nSuch a test could be written in a `goal/style-handling` branch so that other branches, let's say `feature/color-handling` and `feature/style-handling` can be open after the \"goal\" branch has been merged. This will help focus developpement into the implementation of actual features instead of trying to implement everything without a clear direction.\n\nThe above example could then become :\n```C\nvoid cool_test()\n{\n    altbuf_visbile(true);\n    cursor_visible(false);\n\n    print_styled_wrapped(\"The excitement of creating something new and hopefully useful flows down your veins as you prepare for the very first commit.\", 85, ITALIC);\n    move_relative(5, 8);\n    print_styled(\"You are filled with determination.\", RED, BOLD);\n\n    getchar();\n    altbuf_visbile(false);\n    cursor_visible(true);\n}\n```\n\nIn the next branches.\n(Of course the latter is horrible but you get the point).\n\n## TODO\n**This list is not exaustive and is subject to impeding change. It also does not include \"*goals*\" (defined above)**\n\n- [ ] Use zig as a build system rather than make (painful, painful indeed after so many hours writing a Makefile, but necessary).\n    See https://youtu.be/i9nFvSpcCzo?si=yxOfo1hWYExjidIT.\n    \"Replacing your dependency on make by zig, and now this new dependency also cross compiles\", **marvelous**.\n- [ ] Limit the usage of the standard library to bit utilities (stdbit.h) and system calls (no C runtime, like malloc, printf, fopen, ...)\n- [ ] Better support for CJK characters, mostly full width characters\n- [ ] Support for combining diacritical marks, mostly arabic but also phonetics\n- [ ] Account for other terminal emulators on Windows other than *conhost* and *Terminal*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouleymeine%2Fescape-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsouleymeine%2Fescape-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouleymeine%2Fescape-lib/lists"}