{"id":13726786,"url":"https://github.com/cloudflare/saffron","last_synced_at":"2025-05-16T19:07:26.107Z","repository":{"id":40749938,"uuid":"299993700","full_name":"cloudflare/saffron","owner":"cloudflare","description":"The cron parser powering Cron Triggers on Cloudflare Workers","archived":false,"fork":false,"pushed_at":"2024-09-26T15:13:49.000Z","size":167,"stargazers_count":242,"open_issues_count":16,"forks_count":16,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-07T17:44:49.912Z","etag":null,"topics":["cloudflare-workers","cron","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudflare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-30T17:09:51.000Z","updated_at":"2025-04-27T00:12:49.000Z","dependencies_parsed_at":"2024-01-07T21:04:51.093Z","dependency_job_id":"c9dc577f-7c43-4d44-99e1-979af4b4f1d7","html_url":"https://github.com/cloudflare/saffron","commit_stats":{"total_commits":22,"total_committers":4,"mean_commits":5.5,"dds":0.2727272727272727,"last_synced_commit":"bb34024be42c735a4f48e18b9eafc3aac455e9c6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudflare%2Fsaffron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudflare%2Fsaffron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudflare%2Fsaffron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudflare%2Fsaffron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudflare","download_url":"https://codeload.github.com/cloudflare/saffron/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254592395,"owners_count":22097013,"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":["cloudflare-workers","cron","rust"],"created_at":"2024-08-03T01:03:21.999Z","updated_at":"2025-05-16T19:07:26.087Z","avatar_url":"https://github.com/cloudflare.png","language":"Rust","funding_links":[],"categories":["Rust","Demos \u0026 Experiments"],"sub_categories":["Internet Infrastructure"],"readme":"saffron is a cron parser used as part of the backend for Cron Triggers in Cloudflare Workers. It\nprovides APIs for the complete stack, allowing us to use the same parser everywhere. It's made in\ntwo parts:\n\n1. The parser, which is responsible for reading cron expressions into an easy to understand format,\n   which can be simplified with the compiler, or described with `CronExpr::describe`.\n\n2. The compiler, which simplifies expressions into their most compact form. This compact form\n   can check if a chrono date time is contained in a given expression in constant time, no matter\n   the size of the original expression. It can also be used to get future times that match\n   efficiently as an iterator.\n\nThe project itself is divided into 4 Rust workspace members:\n\n1. saffron - the parser itself\n2. saffron-c - the C API used internally by the Workers API\n3. saffron-web - the web API used on the dash in the browser\n4. saffron-worker - the Rust Worker which provides the validate/describe endpoint in the dash API on\n   the edge as a fallback if WASM can't be used in the browser\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudflare%2Fsaffron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudflare%2Fsaffron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudflare%2Fsaffron/lists"}