{"id":22830751,"url":"https://github.com/braheezy/zibra","last_synced_at":"2025-03-31T01:41:23.505Z","repository":{"id":265812761,"uuid":"896220344","full_name":"braheezy/zibra","owner":"braheezy","description":"Web browser from scratch","archived":false,"fork":false,"pushed_at":"2025-03-16T07:05:04.000Z","size":358,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T08:19:21.902Z","etag":null,"topics":["zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","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/braheezy.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}},"created_at":"2024-11-29T20:05:27.000Z","updated_at":"2025-03-16T07:05:07.000Z","dependencies_parsed_at":"2025-03-07T08:19:14.501Z","dependency_job_id":"25c2f912-32c5-4bf1-b582-1ae9b6ae99c9","html_url":"https://github.com/braheezy/zibra","commit_stats":null,"previous_names":["braheezy/web-browswer-engineering","braheezy/zibra"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fzibra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fzibra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fzibra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/braheezy%2Fzibra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/braheezy","download_url":"https://codeload.github.com/braheezy/zibra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246403893,"owners_count":20771526,"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":["zig"],"created_at":"2024-12-12T20:14:16.585Z","updated_at":"2025-03-31T01:41:23.491Z","avatar_url":"https://github.com/braheezy.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zibra\n\n\u003e [!WARNING]\n\u003e This project is actively in work! `HEAD` usually works but it may be broken or produce nasty results.\n\nThis repo holds my Zig code for the browser implemented in [Web Browser Engineering](https://browser.engineering/).\n\n## Usage\n\nYou'll need Zig installed.\n\nClone the project\n\n```sh\ngit clone https://github.com/braheezy/zibra.git\n```\n\nTo build the project, run:\n\n```sh\nzig build\ncp zig-out/bin/zibra .\n```\n\n`zibra` (optionally) takes one URL and displays the result in a window:\n\n```sh\nzibra https://example.org\n```\n\nRun without a URL for a default HTML.\n\n## Supported Features\n\n`zibra` is small but supports the basics:\n\n- HTTP/1.1\n- HTTPS\n- `file://` URIs\n- `data:` URIs\n- Entity support:\n  - `\u0026amp;` → `\u0026` (ampersand)\n  - `\u0026lt;` → `\u003c` (less than)\n  - `\u0026gt;` → `\u003e` (greater than)\n  - `\u0026quot;` → `\"` (quotation mark)\n  - `\u0026apos;` → `'` (apostrophe)\n  - `\u0026shy;` → `­` (soft hyphen)\n- Connections that live beyond single request for `Connection: keep-alive` header\n- Redirects\n- `Cache-Control` header\n- `Content-Encoding: gzip` and `Transfer-Encoding: chunked` headers\n- Emojis and CJK text\n- Various tags for styling:\n  - `\u003cb\u003eBold\u003c/b\u003e`\n  - `\u003ci\u003eItalic\u003c/i\u003e`\n  - `\u003cbig\u003eLarger text\u003c/big\u003e`\n  - `\u003csmall\u003eSmaller text\u003c/small\u003e`\n  - `\u003csup\u003eSuperscript\u003c/sup\u003e`\n  - `\u003ch1 class=\"title\"\u003eCentered title\u003c/h1\u003e`: An `h1` with `class` set to `title` will be centered\n  - `\u003cabbr\u003eAbbreviations\u003c/abbr\u003e`\n  - `\u003cpre\u003ePreformatted text\u003c/pre\u003e`: Including bold and italic variants\n- HTML parsing features:\n  - Automatic insertion of implicit `\u003chtml\u003e`, `\u003chead\u003e`, and `\u003cbody\u003e` tags\n  - Proper handling of self-closing tags like `\u003cimg /\u003e`, `\u003cbr /\u003e`, and `\u003cinput /\u003e`\n  - Support for quoted, unquoted, and boolean HTML attributes\n\n## Development\n\nThere's more Zig commands:\n\n```sh\n# build and run\nzig build run -- https://example.com\n# Run tests\nzig build test\n```\n\nTo test chunked gzip responses, run `gzipServer.py` locally.\n\n## Known Issues\n\n- On Mac, the content is stretched while the window is being resized. Apparently this is known behavior in SDL2 because Mac blocks the main thread while the mouse is being held down to resize windows, preventing SDL from rendering the content properly...I think.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraheezy%2Fzibra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbraheezy%2Fzibra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbraheezy%2Fzibra/lists"}