isomorfeus-hamster 0.6.1 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
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.