summaryrefslogtreecommitdiff
path: root/core/extensions.rs
AgeCommit message (Collapse)Author
2023-01-14chore: use rustfmt imports_granularity option (#17421)Divy Srivastava
Closes https://github.com/denoland/deno/issues/2699 Closes https://github.com/denoland/deno/issues/2347 Uses unstable rustfmt features. Since dprint invokes `rustfmt` we do not need to switch the cargo toolchain to nightly. Do we care about formatting stability of our codebase across Rust versions? (I don't)
2023-01-08feat(core): allow specifying name and dependencies of an Extension (#17301)Leo Kettmeir
2023-01-02chore: update copyright year to 2023 (#17247)David Sherret
Yearly tradition of creating extra noise in git.
2022-10-28Reland "perf(core): generate inlined wrappers for async ops" (#16455)Divy Srivastava
Reland https://github.com/denoland/deno/pull/16428
2022-10-27Revert "perf(core): generate inlined wrappers for async ops (#16428)" (#16443)Divy Srivastava
2022-10-27perf(core): generate inlined wrappers for async ops (#16428)Divy Srivastava
V8's JIT can do a better job knowing the argument count and also enable fast call path (in future). This also lets us call async ops without `opAsync`: ```js const { ops } = Deno.core; await ops.op_void_async(); ``` this patch: 4405286 ops/sec main: 3508771 ops/sec
2022-08-21feat(ops): V8 Fast Calls (#15291)Divy Srivastava
2022-07-22Revert "feat(ops): V8 Fast Calls (#15122)" (#15276)Divy Srivastava
This reverts commit 03dc3b8972f460e40d0b75fc3207cae9fe4f60da.
2022-07-22feat(ops): V8 Fast Calls (#15122)Divy Srivastava
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2022-06-28feat(ext/ffi): Thread safe callbacks (#14942)Aapo Alasuutari
2022-05-15Revert "core: don't include_str extension js code (#10786)" (#14614)Aaron O'Mullan
This reverts commit 10e50a120744de71d6915af4ae93f8231607573d Alternative to #13217, IMO the tradeoffs made by #10786 aren't worth it. It breaks abstractions (crates being self-contained, deno_core without snapshotting etc...) and causes pain points / gotchas for both embedders & devs for a relatively minimal gain in incremental build time ... Closes #11030
2022-05-12feat(ops): #[op(v8)] (#14582)Aaron O'Mullan
2022-04-02feat(ops): #[op(unstable)] (#14124)Aaron O'Mullan
2022-03-22feat(core): disableable extensions & ops (#14063)Aaron O'Mullan
Streamlines a common middleware pattern and provides foundations for avoiding variably sized v8::ExternalReferences & enabling fully monomorphic op callpaths
2022-03-15cleanup(core): OpPair => OpDecl (#13952)Aaron O'Mullan
2022-03-14feat(core): codegen ops (#13861)Divy Srivastava
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2022-03-08feat(core): Event loop middlewares for Extensions (#13816)Divy Srivastava
2021-11-16refactor: re-export anyhow from deno_core (#12777)Ryan Dahl
2021-05-29core: don't include_str extension js code (#10786)Luca Casonato
This speeds up incremental rebuild when only touching JS files by 13-15% Rebuild time after `touch 01_broadcast_channel.js`: main: run 1 49.18s, run 2 50.34s this: run 1 43.12s, run 2 43.19s
2021-05-07fix: align plugin api with Extension (#10427)Elias Sjögreen
2021-04-30Rename crate_ops to extensions (#10431)Andy Hayden
2021-04-28refactor(extensions): reintroduce builder (#10412)Aaron O'Mullan
2021-04-28core: introduce extensions (#9800)Aaron O'Mullan
Extensions allow declarative extensions to "JsRuntime" (ops, state, JS or middleware). This allows for: - `op_crates` to be plug-and-play & self-contained, reducing complexity leaked to consumers - op middleware (like metrics_op) to be opt-in and for new middleware (unstable, tracing,...) - `MainWorker` and `WebWorker` to be composable, allowing users to extend workers with their ops whilst benefiting from the other infrastructure (inspector, etc...) In short extensions improve deno's modularity, reducing complexity and leaky abstractions for embedders and the internal codebase.