asherah 0.10.2 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/NATIVE_VERSION +1 -1
- data/lib/asherah/native.rb +11 -12
- data/lib/asherah/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 338cc815afebd4f4cf0c43fb0ef5e1da0a8a547e1006bd39e5c12e0ccbc3ab9e
|
|
4
|
+
data.tar.gz: b2773e9c657c9a2582eff5be6ebeba696b6ab745b31163fbc860b8eb2c9ff3d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a7a3ef4df3420ab9798849e5810a68884dc5e97c9ccf2f69c0725bb656f131187830cce3685bcedbb0ae4f2bf702f6c4ec17c56af75938cb49cd786e4b8f62e9
|
|
7
|
+
data.tar.gz: '08768ea045c1e27f32b5c7147148064cab41baecdf4b6cd499e9c53aad17754b782c9cfd6e52b55ad43723389607907e7dee9648640d36a6ec26c36ae0d43537'
|
data/NATIVE_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.6.
|
|
1
|
+
v0.6.112
|
data/lib/asherah/native.rb
CHANGED
|
@@ -80,26 +80,25 @@ module Asherah
|
|
|
80
80
|
attach_function :asherah_factory_free, [:pointer], :void
|
|
81
81
|
attach_function :asherah_factory_get_session, [:pointer, :string], :pointer
|
|
82
82
|
attach_function :asherah_session_free, [:pointer], :void
|
|
83
|
-
# encrypt/decrypt block on the metastore (MySQL/Postgres/DynamoDB) and
|
|
84
|
-
# KMS during cache misses. blocking: true frees the GVL so other Ruby
|
|
85
|
-
# threads stay schedulable while the native call is in-flight.
|
|
86
83
|
attach_function :asherah_encrypt_to_json,
|
|
87
|
-
[:pointer, :buffer_in, :size_t, :pointer], :int
|
|
84
|
+
[:pointer, :buffer_in, :size_t, :pointer], :int
|
|
88
85
|
attach_function :asherah_decrypt_from_json,
|
|
89
|
-
[:pointer, :buffer_in, :size_t, :pointer], :int
|
|
86
|
+
[:pointer, :buffer_in, :size_t, :pointer], :int
|
|
90
87
|
attach_function :asherah_buffer_free, [:pointer], :void
|
|
91
88
|
|
|
92
89
|
# Async callback type: void(user_data, result_data, result_len, error_message)
|
|
93
90
|
callback :asherah_completion_fn, [:pointer, :pointer, :size_t, :string], :void
|
|
94
|
-
# The async entry points only enqueue work onto the Rust tokio runtime
|
|
95
|
-
#
|
|
96
|
-
#
|
|
91
|
+
# The async entry points only enqueue work onto the Rust tokio runtime and
|
|
92
|
+
# return immediately. The encrypt/decrypt work, the metastore/KMS I/O, and
|
|
93
|
+
# the completion callback all run on tokio worker threads — never on the
|
|
94
|
+
# calling Ruby thread — so there is no GVL-held native I/O to release for.
|
|
95
|
+
# The enqueue is an unbounded tokio spawn (no bounded queue, so no
|
|
96
|
+
# backpressure stall to guard against); blocking: true would only add GVL
|
|
97
|
+
# release/reacquire overhead to an otherwise instant call.
|
|
97
98
|
attach_function :asherah_encrypt_to_json_async,
|
|
98
|
-
[:pointer, :buffer_in, :size_t, :asherah_completion_fn, :pointer], :int
|
|
99
|
-
blocking: true
|
|
99
|
+
[:pointer, :buffer_in, :size_t, :asherah_completion_fn, :pointer], :int
|
|
100
100
|
attach_function :asherah_decrypt_from_json_async,
|
|
101
|
-
[:pointer, :buffer_in, :size_t, :asherah_completion_fn, :pointer], :int
|
|
102
|
-
blocking: true
|
|
101
|
+
[:pointer, :buffer_in, :size_t, :asherah_completion_fn, :pointer], :int
|
|
103
102
|
|
|
104
103
|
# Log + metrics hooks. The C ABI does not own the callback closure — Ruby
|
|
105
104
|
# must keep a reference to the FFI::Function it passes here for as long as
|
data/lib/asherah/version.rb
CHANGED