diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-03-31 16:37:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 10:37:38 -0400 |
commit | fec1b2a5a4324a7eecdfbb2471931f3b6b0139c5 (patch) | |
tree | 8a650553c2d70e047d9d7365f9ac8702ec9861a5 /core/lib.rs | |
parent | 6dc3549a818ad49b3907d18c93fd422a9cc743a5 (diff) |
refactor: new optimized op-layer using serde_v8 (#9843)
- Improves op performance.
- Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs
per op-encoding (aka: out-of-payload).
- Remove shared queue & custom "asyncHandlers", all async values are
returned in batches via js_recv_cb.
- The op-layer should be thought of as simple function calls with little
indirection or translation besides the conceptually straightforward
serde_v8 bijections.
- Preserve concepts of json/bin/min as semantic groups of their
inputs/outputs instead of their op-encoding strategy, preserving these
groups will also facilitate partial transitions over to v8 Fast API for the
"min" and "bin" groups
Diffstat (limited to 'core/lib.rs')
-rw-r--r-- | core/lib.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/core/lib.rs b/core/lib.rs index ea6968b60..12ccc1d8a 100644 --- a/core/lib.rs +++ b/core/lib.rs @@ -14,7 +14,6 @@ mod ops_json; pub mod plugin_api; mod resources; mod runtime; -mod shared_queue; mod zero_copy_buf; // Re-exports @@ -56,12 +55,17 @@ pub use crate::modules::RecursiveModuleLoad; pub use crate::normalize_path::normalize_path; pub use crate::ops::op_close; pub use crate::ops::op_resources; +pub use crate::ops::serialize_op_result; pub use crate::ops::Op; pub use crate::ops::OpAsyncFuture; pub use crate::ops::OpFn; pub use crate::ops::OpId; +pub use crate::ops::OpPayload; +pub use crate::ops::OpResponse; pub use crate::ops::OpState; pub use crate::ops::OpTable; +pub use crate::ops::PromiseId; +pub use crate::ops::Serializable; pub use crate::ops_bin::bin_op_async; pub use crate::ops_bin::bin_op_sync; pub use crate::ops_bin::ValueOrVector; |