dalli 2.7.4 → 3.2.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.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/{History.md → CHANGELOG.md} +219 -0
  3. data/Gemfile +14 -5
  4. data/LICENSE +1 -1
  5. data/README.md +33 -205
  6. data/lib/dalli/cas/client.rb +2 -57
  7. data/lib/dalli/client.rb +254 -253
  8. data/lib/dalli/compressor.rb +13 -2
  9. data/lib/dalli/key_manager.rb +121 -0
  10. data/lib/dalli/options.rb +7 -7
  11. data/lib/dalli/pid_cache.rb +40 -0
  12. data/lib/dalli/pipelined_getter.rb +177 -0
  13. data/lib/dalli/protocol/base.rb +250 -0
  14. data/lib/dalli/protocol/binary/request_formatter.rb +117 -0
  15. data/lib/dalli/protocol/binary/response_header.rb +36 -0
  16. data/lib/dalli/protocol/binary/response_processor.rb +239 -0
  17. data/lib/dalli/protocol/binary/sasl_authentication.rb +60 -0
  18. data/lib/dalli/protocol/binary.rb +173 -0
  19. data/lib/dalli/protocol/connection_manager.rb +255 -0
  20. data/lib/dalli/protocol/meta/key_regularizer.rb +31 -0
  21. data/lib/dalli/protocol/meta/request_formatter.rb +121 -0
  22. data/lib/dalli/protocol/meta/response_processor.rb +211 -0
  23. data/lib/dalli/protocol/meta.rb +178 -0
  24. data/lib/dalli/protocol/response_buffer.rb +54 -0
  25. data/lib/dalli/protocol/server_config_parser.rb +86 -0
  26. data/lib/dalli/protocol/ttl_sanitizer.rb +45 -0
  27. data/lib/dalli/protocol/value_compressor.rb +85 -0
  28. data/lib/dalli/protocol/value_marshaller.rb +59 -0
  29. data/lib/dalli/protocol/value_serializer.rb +91 -0
  30. data/lib/dalli/protocol.rb +8 -0
  31. data/lib/dalli/ring.rb +97 -86
  32. data/lib/dalli/server.rb +4 -719
  33. data/lib/dalli/servers_arg_normalizer.rb +54 -0
  34. data/lib/dalli/socket.rb +118 -120
  35. data/lib/dalli/version.rb +5 -1
  36. data/lib/dalli.rb +45 -14
  37. data/lib/rack/session/dalli.rb +162 -42
  38. metadata +40 -98
  39. data/Performance.md +0 -42
  40. data/Rakefile +0 -43
  41. data/dalli.gemspec +0 -29
  42. data/lib/action_dispatch/middleware/session/dalli_store.rb +0 -81
  43. data/lib/active_support/cache/dalli_store.rb +0 -372
  44. data/lib/dalli/railtie.rb +0 -7
  45. data/test/benchmark_test.rb +0 -243
  46. data/test/helper.rb +0 -56
  47. data/test/memcached_mock.rb +0 -201
  48. data/test/sasl/memcached.conf +0 -1
  49. data/test/sasl/sasldb +0 -1
  50. data/test/test_active_support.rb +0 -541
  51. data/test/test_cas_client.rb +0 -107
  52. data/test/test_compressor.rb +0 -52
  53. data/test/test_dalli.rb +0 -682
  54. data/test/test_encoding.rb +0 -32
  55. data/test/test_failover.rb +0 -137
  56. data/test/test_network.rb +0 -64
  57. data/test/test_rack_session.rb +0 -341
  58. data/test/test_ring.rb +0 -85
  59. data/test/test_sasl.rb +0 -105
  60. data/test/test_serializer.rb +0 -29
  61. data/test/test_server.rb +0 -110
metadata CHANGED
@@ -1,140 +1,82 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dalli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.4
4
+ version: 3.2.5
5
5
  platform: ruby
6
6
  authors:
7
+ - Peter M. Goldstein
7
8
  - Mike Perham
8
- autorequire:
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-03-17 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: minitest
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 4.2.0
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 4.2.0
27
- - !ruby/object:Gem::Dependency
28
- name: mocha
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rails
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '4'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '4'
12
+ date: 2023-06-13 00:00:00.000000000 Z
13
+ dependencies: []
55
14
  description: High performance memcached client for Ruby
56
- email: mperham@gmail.com
15
+ email:
16
+ - peter.m.goldstein@gmail.com
17
+ - mperham@gmail.com
57
18
  executables: []
58
19
  extensions: []
59
20
  extra_rdoc_files: []
60
21
  files:
22
+ - CHANGELOG.md
61
23
  - Gemfile
62
- - History.md
63
24
  - LICENSE
64
- - Performance.md
65
25
  - README.md
66
- - Rakefile
67
- - dalli.gemspec
68
- - lib/action_dispatch/middleware/session/dalli_store.rb
69
- - lib/active_support/cache/dalli_store.rb
70
26
  - lib/dalli.rb
71
27
  - lib/dalli/cas/client.rb
72
28
  - lib/dalli/client.rb
73
29
  - lib/dalli/compressor.rb
30
+ - lib/dalli/key_manager.rb
74
31
  - lib/dalli/options.rb
75
- - lib/dalli/railtie.rb
32
+ - lib/dalli/pid_cache.rb
33
+ - lib/dalli/pipelined_getter.rb
34
+ - lib/dalli/protocol.rb
35
+ - lib/dalli/protocol/base.rb
36
+ - lib/dalli/protocol/binary.rb
37
+ - lib/dalli/protocol/binary/request_formatter.rb
38
+ - lib/dalli/protocol/binary/response_header.rb
39
+ - lib/dalli/protocol/binary/response_processor.rb
40
+ - lib/dalli/protocol/binary/sasl_authentication.rb
41
+ - lib/dalli/protocol/connection_manager.rb
42
+ - lib/dalli/protocol/meta.rb
43
+ - lib/dalli/protocol/meta/key_regularizer.rb
44
+ - lib/dalli/protocol/meta/request_formatter.rb
45
+ - lib/dalli/protocol/meta/response_processor.rb
46
+ - lib/dalli/protocol/response_buffer.rb
47
+ - lib/dalli/protocol/server_config_parser.rb
48
+ - lib/dalli/protocol/ttl_sanitizer.rb
49
+ - lib/dalli/protocol/value_compressor.rb
50
+ - lib/dalli/protocol/value_marshaller.rb
51
+ - lib/dalli/protocol/value_serializer.rb
76
52
  - lib/dalli/ring.rb
77
53
  - lib/dalli/server.rb
54
+ - lib/dalli/servers_arg_normalizer.rb
78
55
  - lib/dalli/socket.rb
79
56
  - lib/dalli/version.rb
80
57
  - lib/rack/session/dalli.rb
81
- - test/benchmark_test.rb
82
- - test/helper.rb
83
- - test/memcached_mock.rb
84
- - test/sasl/memcached.conf
85
- - test/sasl/sasldb
86
- - test/test_active_support.rb
87
- - test/test_cas_client.rb
88
- - test/test_compressor.rb
89
- - test/test_dalli.rb
90
- - test/test_encoding.rb
91
- - test/test_failover.rb
92
- - test/test_network.rb
93
- - test/test_rack_session.rb
94
- - test/test_ring.rb
95
- - test/test_sasl.rb
96
- - test/test_serializer.rb
97
- - test/test_server.rb
98
- homepage: http://github.com/mperham/dalli
58
+ homepage: https://github.com/petergoldstein/dalli
99
59
  licenses:
100
60
  - MIT
101
- metadata: {}
102
- post_install_message:
103
- rdoc_options:
104
- - "--charset=UTF-8"
61
+ metadata:
62
+ rubygems_mfa_required: 'true'
63
+ post_install_message:
64
+ rdoc_options: []
105
65
  require_paths:
106
66
  - lib
107
67
  required_ruby_version: !ruby/object:Gem::Requirement
108
68
  requirements:
109
69
  - - ">="
110
70
  - !ruby/object:Gem::Version
111
- version: '0'
71
+ version: '2.6'
112
72
  required_rubygems_version: !ruby/object:Gem::Requirement
113
73
  requirements:
114
74
  - - ">="
115
75
  - !ruby/object:Gem::Version
116
76
  version: '0'
117
77
  requirements: []
118
- rubyforge_project:
119
- rubygems_version: 2.4.6
120
- signing_key:
78
+ rubygems_version: 3.4.14
79
+ signing_key:
121
80
  specification_version: 4
122
81
  summary: High performance memcached client for Ruby
123
- test_files:
124
- - test/benchmark_test.rb
125
- - test/helper.rb
126
- - test/memcached_mock.rb
127
- - test/sasl/memcached.conf
128
- - test/sasl/sasldb
129
- - test/test_active_support.rb
130
- - test/test_cas_client.rb
131
- - test/test_compressor.rb
132
- - test/test_dalli.rb
133
- - test/test_encoding.rb
134
- - test/test_failover.rb
135
- - test/test_network.rb
136
- - test/test_rack_session.rb
137
- - test/test_ring.rb
138
- - test/test_sasl.rb
139
- - test/test_serializer.rb
140
- - test/test_server.rb
82
+ test_files: []
data/Performance.md DELETED
@@ -1,42 +0,0 @@
1
- Performance
2
- ====================
3
-
4
- Caching is all about performance, so I carefully track Dalli performance to ensure no regressions.
5
- You can optionally use kgio to give Dalli a 10-20% performance boost: `gem install kgio`.
6
-
7
- Note I've added some benchmarks over time to Dalli that the other libraries don't necessarily have.
8
-
9
- memcache-client
10
- ---------------
11
-
12
- Testing 1.8.5 with ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
13
-
14
- user system total real
15
- set:plain:memcache-client 1.860000 0.310000 2.170000 ( 2.188030)
16
- set:ruby:memcache-client 1.830000 0.290000 2.120000 ( 2.130212)
17
- get:plain:memcache-client 1.830000 0.340000 2.170000 ( 2.176156)
18
- get:ruby:memcache-client 1.900000 0.330000 2.230000 ( 2.235045)
19
- multiget:ruby:memcache-client 0.860000 0.120000 0.980000 ( 0.987348)
20
- missing:ruby:memcache-client 1.630000 0.320000 1.950000 ( 1.954867)
21
- mixed:ruby:memcache-client 3.690000 0.670000 4.360000 ( 4.364469)
22
-
23
-
24
- dalli
25
- -----
26
-
27
- Testing with Rails 3.2.1
28
- Using kgio socket IO
29
- Testing 2.0.0 with ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
30
-
31
- user system total real
32
- mixed:rails:dalli 1.580000 0.570000 2.150000 ( 3.008839)
33
- set:plain:dalli 0.730000 0.300000 1.030000 ( 1.567098)
34
- setq:plain:dalli 0.520000 0.120000 0.640000 ( 0.634402)
35
- set:ruby:dalli 0.800000 0.300000 1.100000 ( 1.640348)
36
- get:plain:dalli 0.840000 0.330000 1.170000 ( 1.668425)
37
- get:ruby:dalli 0.850000 0.330000 1.180000 ( 1.665716)
38
- multiget:ruby:dalli 0.700000 0.260000 0.960000 ( 0.965423)
39
- missing:ruby:dalli 0.720000 0.320000 1.040000 ( 1.511720)
40
- mixed:ruby:dalli 1.660000 0.640000 2.300000 ( 3.320743)
41
- mixedq:ruby:dalli 1.630000 0.510000 2.140000 ( 2.629734)
42
- incr:ruby:dalli 0.270000 0.100000 0.370000 ( 0.547618)
data/Rakefile DELETED
@@ -1,43 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'appraisal'
3
- require 'rake/testtask'
4
- Rake::TestTask.new(:test) do |test|
5
- test.libs << 'test'
6
- test.pattern = 'test/**/test_*.rb'
7
- test.warning = true
8
- test.verbose = true
9
- end
10
-
11
- Rake::TestTask.new(:bench) do |test|
12
- test.libs << 'test'
13
- test.pattern = 'test/benchmark_test.rb'
14
- end
15
-
16
- begin
17
- require 'metric_fu'
18
- MetricFu::Configuration.run do |config|
19
- config.rcov[:rcov_opts] << "-Itest:lib"
20
- end
21
- rescue LoadError
22
- end
23
-
24
- task :default => :test
25
-
26
- task :test_all do
27
- system('rake test RAILS_VERSION="~> 3.0.0"')
28
- system('rake test RAILS_VERSION=">= 3.0.0"')
29
- end
30
-
31
- # 'gem install rdoc' to upgrade RDoc if this is giving you errors
32
- begin
33
- require 'rdoc/task'
34
- RDoc::Task.new do |rd|
35
- rd.rdoc_files.include("lib/**/*.rb")
36
- end
37
- rescue LoadError
38
- puts "Unable to load rdoc, run 'gem install rdoc' to fix this."
39
- end
40
-
41
- require 'rake/clean'
42
- CLEAN.include "**/*.rbc"
43
- CLEAN.include "**/.DS_Store"
data/dalli.gemspec DELETED
@@ -1,29 +0,0 @@
1
- require './lib/dalli/version'
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{dalli}
5
- s.version = Dalli::VERSION
6
- s.license = "MIT"
7
-
8
- s.authors = ["Mike Perham"]
9
- s.description = %q{High performance memcached client for Ruby}
10
- s.email = %q{mperham@gmail.com}
11
- s.files = Dir.glob("lib/**/*") + [
12
- "LICENSE",
13
- "README.md",
14
- "History.md",
15
- "Rakefile",
16
- "Gemfile",
17
- "dalli.gemspec",
18
- "Performance.md",
19
- ]
20
- s.homepage = %q{http://github.com/mperham/dalli}
21
- s.rdoc_options = ["--charset=UTF-8"]
22
- s.require_paths = ["lib"]
23
- s.summary = %q{High performance memcached client for Ruby}
24
- s.test_files = Dir.glob("test/**/*")
25
- s.add_development_dependency(%q<minitest>, [">= 4.2.0"])
26
- s.add_development_dependency(%q<mocha>, [">= 0"])
27
- s.add_development_dependency(%q<rails>, ["~> 4"])
28
- end
29
-
@@ -1,81 +0,0 @@
1
- require 'active_support/cache'
2
- require 'action_dispatch/middleware/session/abstract_store'
3
- require 'dalli'
4
-
5
- # Dalli-based session store for Rails 3.0.
6
- module ActionDispatch
7
- module Session
8
- class DalliStore < AbstractStore
9
- def initialize(app, options = {})
10
- # Support old :expires option
11
- options[:expire_after] ||= options[:expires]
12
-
13
- super
14
-
15
- @default_options = { :namespace => 'rack:session' }.merge(@default_options)
16
-
17
- @pool = options[:cache] || begin
18
- Dalli::Client.new(
19
- @default_options[:memcache_server], @default_options)
20
- end
21
- @namespace = @default_options[:namespace]
22
-
23
- @raise_errors = !!@default_options[:raise_errors]
24
-
25
- super
26
- end
27
-
28
- def reset
29
- @pool.reset
30
- end
31
-
32
- private
33
-
34
- def get_session(env, sid)
35
- sid = generate_sid unless sid and !sid.empty?
36
- begin
37
- session = @pool.get(sid) || {}
38
- rescue Dalli::DalliError => ex
39
- # re-raise ArgumentError so Rails' session abstract_store.rb can autoload any missing models
40
- raise ArgumentError, ex.message if ex.message =~ /unmarshal/
41
- Rails.logger.warn("Session::DalliStore#get: #{ex.message}")
42
- session = {}
43
- end
44
- [sid, session]
45
- end
46
-
47
- def set_session(env, sid, session_data, options = nil)
48
- options ||= env[ENV_SESSION_OPTIONS_KEY]
49
- expiry = options[:expire_after]
50
- @pool.set(sid, session_data, expiry)
51
- sid
52
- rescue Dalli::DalliError
53
- Rails.logger.warn("Session::DalliStore#set: #{$!.message}")
54
- raise if @raise_errors
55
- false
56
- end
57
-
58
- def destroy_session(env, session_id, options)
59
- begin
60
- @pool.delete(session_id)
61
- rescue Dalli::DalliError
62
- Rails.logger.warn("Session::DalliStore#destroy_session: #{$!.message}")
63
- raise if @raise_errors
64
- end
65
- return nil if options[:drop]
66
- generate_sid
67
- end
68
-
69
- def destroy(env)
70
- if sid = current_session_id(env)
71
- @pool.delete(sid)
72
- end
73
- rescue Dalli::DalliError
74
- Rails.logger.warn("Session::DalliStore#destroy: #{$!.message}")
75
- raise if @raise_errors
76
- false
77
- end
78
-
79
- end
80
- end
81
- end