{"id":17129460,"url":"https://github.com/andreubotella/deno-simple-module-loader","last_synced_at":"2025-04-13T07:16:13.762Z","repository":{"id":45180608,"uuid":"440954838","full_name":"andreubotella/deno-simple-module-loader","owner":"andreubotella","description":"A simple implementation of deno_core's ModuleLoader trait which supports loading modules from the network.","archived":false,"fork":false,"pushed_at":"2024-01-21T17:28:08.000Z","size":23,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T07:16:06.845Z","etag":null,"topics":["deno","deno-core","es-modules"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreubotella.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-22T18:50:01.000Z","updated_at":"2025-04-09T10:20:07.000Z","dependencies_parsed_at":"2025-02-23T01:31:11.788Z","dependency_job_id":"cc7b3297-f9f2-4ed8-b103-2b6a09b7f1b7","html_url":"https://github.com/andreubotella/deno-simple-module-loader","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/andreubotella%2Fdeno-simple-module-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreubotella%2Fdeno-simple-module-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreubotella%2Fdeno-simple-module-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreubotella%2Fdeno-simple-module-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreubotella","download_url":"https://codeload.github.com/andreubotella/deno-simple-module-loader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248675392,"owners_count":21143768,"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":["deno","deno-core","es-modules"],"created_at":"2024-10-14T19:09:42.961Z","updated_at":"2025-04-13T07:16:13.729Z","avatar_url":"https://github.com/andreubotella.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# deno-simple-module-loader\n\nThe [`deno_core`](https://crates.io/crates/deno_core) crate, part of the\n[Deno](https://deno.land) Javascript/Typescript runtime, provides a high-level\ninterface over the V8 Javascript engine, with an event loop abstraction that\nintegrates with Rust `async` code. This includes facilities for handling ES\nmodules and dynamic imports.\n\nHowever, `deno_core` does not by itself resolve and fetch modules. Instead it\nprovides a\n[`ModuleLoader`](https://docs.rs/deno_core/latest/deno_core/trait.ModuleLoader.html)\ntrait, alongside with two implementations:\n[`NoopModuleLoader`](https://docs.rs/deno_core/latest/deno_core/struct.NoopModuleLoader.html),\nwhich fails when importing modules, and\n[`FsModuleLoader`](https://docs.rs/deno_core/latest/deno_core/struct.FsModuleLoader.html),\nwhich is limited to modules in the filesystem. `deno_core` does not provide an\nimplementation of `ModuleLoader` which performs network requests, and the\nimplementation in the Deno program is tightly coupled with Deno's network fetch\ninfrastructure and with its Typescript compilation pipeline, so it can't be\neasily copied.\n\nThis crate provides a simple implementation of `ModuleLoader` that does load\nmodules from the network, built on top of `reqwest`.\n\nThings it supports:\n\n- HTTP(S) imports\n- Local filesystem imports\n- Data URLs\n- JSON modules (i.e. `{type: \"json\"}` import attributes just work)\n\nThings it doesn't plan to support (but hey, file an issue if it bugs you):\n\n- Any support at all for non-URL import specifiers (i.e. bare imports, like\n  `\"lodash\"`), URL specifiers which are not supported in browsers (like Deno's\n  `npm:` URL support), or any other mapping from the import specifier to the\n  actual fetched URL (like import maps).\n- Custom import attribute types (such as `{type: \"my-custom-type\"}`). CSS\n  imports count as a custom type for this purpose.\n- Blob URLs\n- Any support for transpiling modules (i.e. Typescript)\n- Custom network, authentication or TLS settings. (Though if there's significant\n  demand, I might reconsider.)\n- Running with a futures executor other than `tokio`.\n\n`deno-simple-module-loader` doesn't work with versions of `deno_core` lower than\n0.246.0. (The current version at the time of writing is 0.248.0).\n\nThis is a work in progress. No guarantees, yadda yadda.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreubotella%2Fdeno-simple-module-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreubotella%2Fdeno-simple-module-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreubotella%2Fdeno-simple-module-loader/lists"}