{"id":15393587,"url":"https://github.com/luukdegram/feilich","last_synced_at":"2025-04-15T23:46:36.457Z","repository":{"id":44403976,"uuid":"382622665","full_name":"Luukdegram/feilich","owner":"Luukdegram","description":"Small, no dependency, TLS 1.3 implementation in Zig, for Zig.","archived":false,"fork":false,"pushed_at":"2022-08-30T19:35:41.000Z","size":280,"stargazers_count":24,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-05T14:49:48.257Z","etag":null,"topics":["security","tls","tls13","web","zig","ziglang"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":false,"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/Luukdegram.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}},"created_at":"2021-07-03T13:29:41.000Z","updated_at":"2024-08-30T14:31:25.000Z","dependencies_parsed_at":"2023-01-16T16:45:16.943Z","dependency_job_id":null,"html_url":"https://github.com/Luukdegram/feilich","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luukdegram%2Ffeilich","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luukdegram%2Ffeilich/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luukdegram%2Ffeilich/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luukdegram%2Ffeilich/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luukdegram","download_url":"https://codeload.github.com/Luukdegram/feilich/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219948908,"owners_count":16573493,"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":["security","tls","tls13","web","zig","ziglang"],"created_at":"2024-10-01T15:19:43.326Z","updated_at":"2024-10-17T03:04:58.749Z","avatar_url":"https://github.com/Luukdegram.png","language":"Zig","readme":"# Feilich\n\nFeilich is a TLS 1.3 implementation in [zig](https://ziglang.org). Zig has a great async model, allowing users to write concurrent programs.\nHowever, most TLS libraries are written in C. Unfortunately, most of those libraries do not work well (or at all) with Zig's async.\nZig also produces small binaries as well has remarkable freestanding support. This, together with explicit allocators, allows us\nto produce a library that also works for kernels and embedded devices. For those reasons, and the fact I've been wanting to\nlearn more about how TLS works, have made me decide to write this library.\n\nThe initial goal is to implement the server side of TLS 1.3 to make it work with my Gemini library [lemon_pie](https://github.com/Luukdegram/lemon_pie).\nThis is a great usecase as Gemini's specification requires the usage of TLS. As the usage of TLS 1.3 is not yet very widespread and many\nlibraries not offering full support for it yet, I do very much want to implement the client side of TLS 1.3 also. \n\nTLS 1.2 is not a goal as we already have a great TLS 1.2 library for zig called [iguanaTLS](https://github.com/alexnask/igunaTLS).\nAlthough it currently only supports client side, we could perhaps PR server support in the future.\n\n## Project status\n\nThe project is currently on-hold until I have more free time to work on this besides the self-hosted compiler for the Zig programming language.\nI'd like to bring this project to the point where it's fully operational for a single cipher suite. From there on, it should be fairly straight\nforward to implement more suites as well as other crypto algorithms supported by TLS 1.3.\nI expect to be able to continue and get it to that state Q3/Q4 of this year. Until then, this project will be stale.\n\n## Should I use this?\n\nMaybe? I have no prior experience with TLS, nor am I some crypto expert. TLS contains some known [implementation pitfalls](https://datatracker.ietf.org/doc/html/rfc8446#appendix-C.3),\nand can be quite complex to implement correctly. For those reasons alone I cannot recommend to use this library outside experimental, hobby usage.\nIt would be great to bring this library to a state where others and I could recommend its usage, tho I'm not sure that is possible with my lack\nof knowledge and experience in this area.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluukdegram%2Ffeilich","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluukdegram%2Ffeilich","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluukdegram%2Ffeilich/lists"}