{"id":30381888,"url":"https://github.com/tonywu6/ferrosaur","last_synced_at":"2026-03-06T15:02:11.070Z","repository":{"id":292004448,"uuid":"933777928","full_name":"tonywu6/ferrosaur","owner":"tonywu6","description":"🦀📲🦕","archived":false,"fork":false,"pushed_at":"2025-05-11T13:01:20.000Z","size":587,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-12T03:27:05.048Z","etag":null,"topics":["deno","proc-macro","v8"],"latest_commit_sha":null,"homepage":"https://tonywu6.github.io/ferrosaur/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tonywu6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE.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}},"created_at":"2025-02-16T17:08:00.000Z","updated_at":"2025-05-11T07:29:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"06402e97-d955-4801-98d1-dbd5534de1f0","html_url":"https://github.com/tonywu6/ferrosaur","commit_stats":null,"previous_names":["tonywu6/ferrosaur"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tonywu6/ferrosaur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonywu6%2Fferrosaur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonywu6%2Fferrosaur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonywu6%2Fferrosaur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonywu6%2Fferrosaur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tonywu6","download_url":"https://codeload.github.com/tonywu6/ferrosaur/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonywu6%2Fferrosaur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30182686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["deno","proc-macro","v8"],"created_at":"2025-08-20T22:25:38.711Z","updated_at":"2026-03-06T15:02:11.065Z","avatar_url":"https://github.com/tonywu6.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ferrosaur\n\n[![crates.io](https://img.shields.io/crates/v/ferrosaur?style=flat-square)](https://crates.io/crates/ferrosaur)\n[![documentation](https://img.shields.io/github/actions/workflow/status/tonywu6/ferrosaur/docs.yml?event=release\u0026style=flat-square\u0026label=docs)](https://tonywu6.github.io/ferrosaur/)\n[![MIT/Apache-2.0 licensed](https://img.shields.io/crates/l/ferrosaur?style=flat-square)](https://github.com/tonywu6/ferrosaur/tree/main/LICENSE-APACHE.md)\n\n\u003cem/\u003eSo you use\u003c/em\u003e [`deno_core`], \u003cem\u003eand you want to call JavaScript from Rust.\u003c/em\u003e\n\n```javascript\n// If you have: lib.js\nexport const slowFib = (n) =\u003e\n  n === 0 ? 0 : n === 1 ? 1 : slowFib(n - 1) + slowFib(n - 2);\n```\n\n```rust\n// and you write: lib.rs\nuse ferrosaur::js;\n\n#[js(module(\"lib.js\"))]\nstruct Math;\n\n#[js(interface)]\nimpl Math {\n    #[js(func)]\n    fn slow_fib(\u0026self, n: serde\u003cusize\u003e) -\u003e serde\u003cusize\u003e {}\n}\n```\n\n```rust\n// Then you get:\n// let rt: \u0026mut JsRuntime;\nlet lib = Math::main_module_init(rt).await?;\nlet fib = lib.slow_fib(42, rt)?;\nassert_eq!(fib, 267914296);\n```\n\n_ferrosaur_ derives types and implementations, à la [wasm-bindgen], that you can use\nwith your favorite [`JsRuntime`].\n\n## Documentation\n\n[Read the book!](https://tonywu6.github.io/ferrosaur/)\n\nYou may be looking for:\n\n\u003c!-- prettier-ignore-start --\u003e\n\n- [Examples](https://tonywu6.github.io/ferrosaur/examples)\n  - [_console.log_](https://tonywu6.github.io/ferrosaur/examples/console)\n    | [_calculator_](https://tonywu6.github.io/ferrosaur/examples/calculator)\n    | [_ts_](https://tonywu6.github.io/ferrosaur/examples/ts)\n    | [_ts-blank-space_](https://tonywu6.github.io/ferrosaur/examples/ts-blank-space)\n- [Reference](https://tonywu6.github.io/ferrosaur/reference)\n  - [`js(global_this)`](https://tonywu6.github.io/ferrosaur/reference/global-this)\n    | [`js(module)`](https://tonywu6.github.io/ferrosaur/reference/module)\n    | [`js(value)`](https://tonywu6.github.io/ferrosaur/reference/value)\n    | [`js(interface)`](https://tonywu6.github.io/ferrosaur/reference/interface)\n    | [`js(prop)`](https://tonywu6.github.io/ferrosaur/reference/interface/prop)\n    | [`js(func)`](https://tonywu6.github.io/ferrosaur/reference/interface/func)\n    | [`js(new)`](https://tonywu6.github.io/ferrosaur/reference/interface/new)\n\n\u003c!-- prettier-ignore-end --\u003e\n\n## License\n\nThis project is released under the\n[Apache 2.0 License](https://github.com/tonywu6/ferrosaur/tree/main/LICENSE-APACHE.md)\nand the [MIT License](https://github.com/tonywu6/ferrosaur/tree/main/LICENSE-MIT.md).\n\n\u003c!-- prettier-ignore-start --\u003e\n\n[`deno_core`]:  https://docs.rs/deno_core\n[`JsRuntime`]:  https://docs.rs/deno_core/latest/deno_core/struct.JsRuntime.html\n[wasm-bindgen]: https://github.com/rustwasm/wasm-bindgen#example\n\n\u003c!-- prettier-ignore-end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonywu6%2Fferrosaur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonywu6%2Fferrosaur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonywu6%2Fferrosaur/lists"}