{"id":27946247,"url":"https://github.com/passcod/timesimp","last_synced_at":"2025-05-07T13:49:19.760Z","repository":{"id":290190574,"uuid":"973659676","full_name":"passcod/timesimp","owner":"passcod","description":"Simple sans-io timesync client and server","archived":false,"fork":false,"pushed_at":"2025-05-07T04:16:18.000Z","size":157,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T04:30:59.685Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/passcod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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":"2025-04-27T13:20:37.000Z","updated_at":"2025-05-07T04:09:36.000Z","dependencies_parsed_at":"2025-04-27T13:37:02.340Z","dependency_job_id":"37926463-26cb-42c3-810e-99d1993fc4f2","html_url":"https://github.com/passcod/timesimp","commit_stats":null,"previous_names":["passcod/timesimp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Ftimesimp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Ftimesimp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Ftimesimp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/passcod%2Ftimesimp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/passcod","download_url":"https://codeload.github.com/passcod/timesimp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252815886,"owners_count":21808700,"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":[],"created_at":"2025-05-07T13:49:18.767Z","updated_at":"2025-05-07T13:49:19.755Z","avatar_url":"https://github.com/passcod.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Time simp ⏰\n\n_Simple sans-io timesync client and server._\n\n## How does it work?\n\nTimesimp is based on the averaging method described in [Simpson (2002),\nA Stream-based Time Synchronization Technique For Networked Computer\nGames][paper], but with a corrected delta calculation. Compared to NTP, it's a\nsimpler and less accurate time synchronisation algorithm that is usable over\nnetwork streams, rather than datagrams. Simpson asserts they were able to\nachieve accuracies of 100ms or better, which is sufficient in many cases; my\ntesting gets accuracies well below 5ms. The main limitation of the algorithm is\nthat round-trip-time is assumed to be symmetric: if the forward trip time is\ndifferent from the return trip time, then an error is induced equal to the\nvalue of the difference in trip times.\n\nThis library provides a sans-io implementation: you bring in your transport and\nstorage, you get time offsets. There's the core Rust crate and Node.js bindings.\n\n[paper]: https://web.archive.org/web/20160310125700/http://mine-control.com/zack/timesync/timesync.html\n\n## How do I use it?\n\n### Rust\n\n- [Crate][lib-rust]\n- [API Docs][docs-rust]\n\n[lib-rust]: https://lib.rs/crate/timesimp\n[docs-rust]: https://docs.rs/timesimp\n\n### Node.js\n\n- [NPM][lib-node]\n- [API Docs][docs-node]\n\n[lib-node]: https://www.npmjs.com/package/timesimp\n[docs-node]: https://passcod.github.io/timesimp/js/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Ftimesimp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpasscod%2Ftimesimp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpasscod%2Ftimesimp/lists"}