isomorfeus-hamster 0.6.1 → 0.6.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 552d35f21d131aeec9aa8afdcb99997a0b287c9932fc8e2f347c90baa41af9d2
4
- data.tar.gz: 25eb9e961d3e413fcd8b195ea484ad7a1ea6748443520b54b3157b55970e8978
3
+ metadata.gz: 3e47bdc930e499583d4d07732990944617d8b1cf87b8694f846a060b0ec864b5
4
+ data.tar.gz: 3e9561cc9748cda8b494d056853f9c5c4c6a621c48523554a20b4ce4b61935ab
5
5
  SHA512:
6
- metadata.gz: e090d821802de1215d642165fa9c736dbf0a02d16997128836b5264add64d00146ea7b0cf69ec67deb4803c808aadd3a0469ca48781b1abeb62d5ec2064a55f4
7
- data.tar.gz: a222840275ff93f21fe6e908b6f911f31e4b2da3120aab6818808faa25bd6d0d833c6e7367b62df5ed28b9d300c5043a96c20d63e626b426dacf9713a8852a17
6
+ metadata.gz: 7cbcc1820f97759384a868fd3af9003a706d6cc3291d1b6e06cee417c00c7f0b7ac270ba887e2fc9802963ad94474809faa8f1a2ec03f408a988532a5f36ebe9
7
+ data.tar.gz: 9789b1d1116bd0081cdc656491ef95a7f357e8ad4ad647081afd2ac5251bfd7328bbd3c26873abb4245554078132dc910f99907981c606b061d08576c901d22f
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
- # isomorfeus-hamster
1
+ <h1 align="center">
2
+ <img src="https://github.com/isomorfeus/isomorfeus-hamster/blob/master/Logo.png?raw=true" align="center" width="234" height="143" />
3
+ <br/>
4
+ Isomorfeus Hamster<br/>
5
+ </h1>
2
6
 
3
7
  Convenient and well performing key value store and object database.
4
8
 
5
9
  ### Community and Support
6
- At the [Isomorfeus Framework Project](http://isomorfeus.com)
7
-
10
+ At the [Isomorfeus Framework Project](https://isomorfeus.com)
@@ -2,14 +2,27 @@ module Isomorfeus
2
2
  module Hamster
3
3
  module Marshal
4
4
  class << self
5
- def dump(db, key, obj)
6
- db.env.transaction { db.put(key, ::Oj.dump(obj)) }
5
+ BROTLI = 'b:'.freeze
6
+
7
+ def dump(db, key, obj, class_cache: true, compress: false)
8
+ v = ::Oj.dump(obj, mode: :object, circular: true, class_cache: class_cache)
9
+ v = 'b:' << ::Brotli.deflate(v, quality: compress) if compress
10
+ db.env.transaction { db.put(key, v) }
11
+ end
12
+
13
+ def load(db, key, class_cache: true)
14
+ v = db.get(key)
15
+ return nil unless v
16
+ v = ::Brotli.inflate(v[2..]) if v.start_with?(BROTLI)
17
+ ::Oj.load(v, mode: :object, circular: true, class_cache: class_cache)
18
+ end
19
+
20
+ def serialize(obj, class_cache: true)
21
+ ::Oj.dump(obj, mode: :object, circular: true, class_cache: class_cache)
7
22
  end
8
23
 
9
- def load(db, key)
10
- obj_j = db.get(key)
11
- return nil unless obj_j
12
- ::Oj.load(obj_j)
24
+ def unserialize(obj_j, class_cache: true)
25
+ ::Oj.load(obj_j, mode: :object, circular: true, class_cache: class_cache)
13
26
  end
14
27
  end
15
28
  end
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Hamster
3
- VERSION = '0.6.1'
3
+ VERSION = '0.6.5'
4
4
  end
5
5
  end
@@ -1,3 +1,4 @@
1
+ require 'brotli'
1
2
  require 'oj'
2
3
  require 'isomorfeus_hamster_ext'
3
4
  require 'isomorfeus/hamster/version'
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-hamster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-03 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: brotli
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.4.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.4.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: oj
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 3.13.9
33
+ version: 3.13.11
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 3.13.9
40
+ version: 3.13.11
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,11 +112,12 @@ files:
98
112
  - lib/isomorfeus/hamster/database.rb
99
113
  - lib/isomorfeus/hamster/marshal.rb
100
114
  - lib/isomorfeus/hamster/version.rb
101
- homepage: http://isomorfeus.com
115
+ homepage: https://isomorfeus.com
102
116
  licenses:
103
117
  - MIT
104
118
  metadata:
105
119
  github_repo: ssh://github.com/isomorfeus/gems
120
+ source_code_uri: https://github.com/isomorfeus/isomorfeus-hamster
106
121
  post_install_message:
107
122
  rdoc_options: []
108
123
  require_paths:
@@ -118,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
133
  - !ruby/object:Gem::Version
119
134
  version: '0'
120
135
  requirements: []
121
- rubygems_version: 3.2.22
136
+ rubygems_version: 3.3.3
122
137
  signing_key:
123
138
  specification_version: 4
124
139
  summary: KV store and ObjectDB for Isomorfeus.