ji2p 0.0.4-universal-java-11

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 (66) hide show
  1. checksums.yaml +7 -0
  2. data/bin/bundle +15 -0
  3. data/bin/ctxirb +119 -0
  4. data/bin/simple_http_server +20 -0
  5. data/bin/simple_outproxy +96 -0
  6. data/lib/actor_system/actor.rb +10 -0
  7. data/lib/actor_system/concurrent/processor.rb +21 -0
  8. data/lib/actor_system/concurrent/worker.rb +13 -0
  9. data/lib/actor_system/core/minimal.rb +84 -0
  10. data/lib/actor_system/core/observable_implementation.rb +58 -0
  11. data/lib/actor_system/core/props.rb +45 -0
  12. data/lib/actor_system/dispatcher.rb +12 -0
  13. data/lib/actor_system/mailbox.rb +7 -0
  14. data/lib/actor_system/message.rb +60 -0
  15. data/lib/core_ext.rb +41 -0
  16. data/lib/gen_server.rb +57 -0
  17. data/lib/ji2p.rb +37 -0
  18. data/lib/ji2p/bundler.rb +165 -0
  19. data/lib/ji2p/cluster.rb +6 -0
  20. data/lib/ji2p/cluster/etcd.rb +5 -0
  21. data/lib/ji2p/cluster/etcd/version3.rb +6 -0
  22. data/lib/ji2p/cluster/kubernetes.rb +5 -0
  23. data/lib/ji2p/cluster/kubernetes/kube_api.rb +6 -0
  24. data/lib/ji2p/concurrent.rb +24 -0
  25. data/lib/ji2p/concurrent_executor.rb +56 -0
  26. data/lib/ji2p/config.rb +15 -0
  27. data/lib/ji2p/control.rb +15 -0
  28. data/lib/ji2p/control/client_manager.rb +14 -0
  29. data/lib/ji2p/control/dest.rb +34 -0
  30. data/lib/ji2p/control/keypair.rb +176 -0
  31. data/lib/ji2p/control/server.rb +80 -0
  32. data/lib/ji2p/control/socket_manager.rb +77 -0
  33. data/lib/ji2p/control/tunnel_manager.rb +62 -0
  34. data/lib/ji2p/environment.rb +35 -0
  35. data/lib/ji2p/package/gem_installer.rb +91 -0
  36. data/lib/ji2p/package/gemfile.rb +234 -0
  37. data/lib/ji2p/package/jar_dependencies.rb +23 -0
  38. data/lib/ji2p/package/proxy_support.rb +50 -0
  39. data/lib/ji2p/rspec.rb +16 -0
  40. data/lib/ji2p/server.rb +10 -0
  41. data/lib/ji2p/server/api.rb +14 -0
  42. data/lib/ji2p/server/database.rb +66 -0
  43. data/lib/ji2p/server/http.rb +69 -0
  44. data/lib/ji2p/server/http_server.rb +37 -0
  45. data/lib/ji2p/server/initializer.rb +4 -0
  46. data/lib/ji2p/server/launcher.rb +40 -0
  47. data/lib/ji2p/server/models.rb +9 -0
  48. data/lib/ji2p/server/models/base_record.rb +7 -0
  49. data/lib/ji2p/server/models/keypair.rb +32 -0
  50. data/lib/ji2p/server/models/tunnel.rb +4 -0
  51. data/lib/ji2p/startup.rb +12 -0
  52. data/lib/ji2p/startup/bootstrap.rb +60 -0
  53. data/lib/ji2p/startup/client_application.rb +20 -0
  54. data/lib/ji2p/startup/router_manager.rb +21 -0
  55. data/lib/ji2p/startup/sinatra_app.rb +61 -0
  56. data/lib/ji2p/startup/worker.rb +63 -0
  57. data/lib/ji2p/utils/blocking_queue.rb +32 -0
  58. data/lib/ji2p/utils/byte_value.rb +61 -0
  59. data/lib/ji2p/version.rb +3 -0
  60. data/lib/ji2p_jars.rb +16 -0
  61. data/lib/maybe.rb +148 -0
  62. data/lib/net/i2p/client/mstreaming/0.9.43/mstreaming-0.9.43.jar +0 -0
  63. data/lib/net/i2p/client/streaming/0.9.43/streaming-0.9.43.jar +0 -0
  64. data/lib/net/i2p/i2p/0.9.43/i2p-0.9.43.jar +0 -0
  65. data/lib/net/i2p/router/0.9.43/router-0.9.43.jar +0 -0
  66. metadata +392 -0
@@ -0,0 +1,20 @@
1
+ require 'fileutils'
2
+
3
+ module Ji2p
4
+ module Startup
5
+ class ClientApplication
6
+ java_import 'net.i2p.I2PAppContext'
7
+
8
+ def initialize name
9
+ @name = name
10
+ @ctx = Java::NetI2p::I2PAppContext.getGlobalContext
11
+ FileUtils.mkdir_p plugin_path unless File.exists? plugin_path
12
+ end
13
+
14
+ def plugin_path
15
+ @proot_path ||= File.expand_path("plugins/#{@name}", @ctx.getAppDir.getAbsolutePath)
16
+ end
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ require 'java'
2
+
3
+ module Ji2p::Startup
4
+ class RouterManager
5
+ @@router = nil
6
+ include_package 'net.i2p.router'
7
+
8
+ def self.start_router!
9
+ @@router = RouterLaunch.main ARGV if @@router.nil?
10
+ end
11
+
12
+ def self.router_context
13
+ RouterContext.getCurrentContext
14
+ end
15
+
16
+ def self.get_leases
17
+ ctx = RouterManager.router_context
18
+ ctx.netDb.get_leases.to_a
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,61 @@
1
+ require 'sinatra'
2
+ require 'sinatra/base'
3
+ #require 'sinatra/config_file'
4
+ require 'sinatra/contrib'
5
+ require 'sinatra/cookies'
6
+ require 'sinatra/json'
7
+ require 'sinatra/namespace'
8
+ require 'sinatra/reloader'
9
+ #require 'sinatra/webdav'
10
+ require 'better_errors'
11
+ require 'binding_of_caller'
12
+
13
+ module Ji2p
14
+ module Startup
15
+ class SinatraApp < Sinatra::Base
16
+ APP_ROOT = File.expand_path('../..', __dir__) unless defined? APP_ROOT
17
+
18
+ use Rack::Session::Cookie, :key => 'rack.session',
19
+ :domain => 'localhost',
20
+ :path => '/',
21
+ :expire_after => 2592000, # In seconds
22
+ :secret => 'kake'
23
+
24
+ set :environments, %w{development test production staging}
25
+ enable :sessions, :logging
26
+ set :sessions, true
27
+ set :logging, true
28
+ set :server, %w[puma webrick]
29
+ set :app_file, __FILE__
30
+ set :public_folder, Proc.new { File.join(APP_ROOT, 'public') }
31
+ set :protection, :session => true
32
+ unless ENV['APP_ENV'].nil?
33
+ set :environment, ENV['APP_ENV']
34
+ else
35
+ set :environment, :development
36
+ end
37
+
38
+
39
+ configure :development do
40
+ register Sinatra::Reloader
41
+
42
+ use BetterErrors::Middleware
43
+ BetterErrors.application_root = APP_ROOT
44
+
45
+ set :reload_stuff, true
46
+ end
47
+
48
+ register Sinatra::Namespace
49
+ #register Sinatra::ConfigFile
50
+
51
+ helpers Sinatra::Cookies
52
+
53
+ set :show_exceptions, false
54
+
55
+ get '/' do
56
+ json :sinatra => { :status => 'OK', :request => request.env.to_json }
57
+ end
58
+
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,63 @@
1
+ module Ji2p
2
+ module Startup
3
+ class Worker
4
+ def self.start(num_threads:, queue_size:)
5
+ queue = SizedQueue.new(queue_size)
6
+ worker = new(num_threads: num_threads, queue: queue)
7
+ worker.spawn_threads
8
+ worker
9
+ end
10
+
11
+ def initialize(num_threads:, queue:)
12
+ @num_threads = num_threads
13
+ @queue = queue
14
+ @threads = []
15
+ end
16
+
17
+ attr_reader :num_threads, :threads
18
+ private :threads
19
+
20
+ def spawn_threads
21
+ num_threads.times do
22
+ threads << Thread.new do
23
+ while running? || actions?
24
+ action_proc, action_payload = wait_for_action
25
+ action_proc.call(action_payload) if action_proc
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ def enqueue(action, payload)
32
+ queue.push([action, payload])
33
+ end
34
+
35
+ def stop
36
+ queue.close
37
+ threads.each(&:exit)
38
+ threads.clear
39
+ true
40
+ end
41
+
42
+ private
43
+
44
+ attr_reader :queue, :threads
45
+
46
+ def actions?
47
+ !queue.empty?
48
+ end
49
+
50
+ def running?
51
+ !queue.closed?
52
+ end
53
+
54
+ def dequeue_action
55
+ queue.pop(true)
56
+ end
57
+
58
+ def wait_for_action
59
+ queue.pop(false)
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,32 @@
1
+ require 'thread'
2
+
3
+ module Ji2p
4
+ module Utils
5
+ class BlockingQueue
6
+ attr_reader :queue, :mutex, :cv
7
+
8
+ def initialize
9
+ @queue = Array.new
10
+ @mutex = Mutex.new
11
+ @cv = ConditionVariable.new
12
+ end
13
+
14
+ def push(ele)
15
+ @mutex.synchronize do
16
+ @queue.push ele
17
+ @cv.signal
18
+ end
19
+ end
20
+
21
+ def pop
22
+ @mutex.synchronize do
23
+ while @queue.empty?
24
+ @cv.wait(@mutex)
25
+ end
26
+
27
+ @queue.pop
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,61 @@
1
+ module Ji2p
2
+ module Utils
3
+ module ByteValue
4
+ module_function
5
+
6
+ B = 1
7
+ KB = B << 10
8
+ MB = B << 20
9
+ GB = B << 30
10
+ TB = B << 40
11
+ PB = B << 50
12
+
13
+ def parse(text)
14
+ if !text.is_a?(String)
15
+ raise ArgumentError, "ByteValue::parse takes a String, got a `#{text.class.name}`"
16
+ end
17
+ number = text.to_f
18
+ factor = multiplier(text)
19
+
20
+ (number * factor).to_i
21
+ end
22
+
23
+ def multiplier(text)
24
+ case text
25
+ when /(?:k|kb)$/
26
+ KB
27
+ when /(?:m|mb)$/
28
+ MB
29
+ when /(?:g|gb)$/
30
+ GB
31
+ when /(?:t|tb)$/
32
+ TB
33
+ when /(?:p|pb)$/
34
+ PB
35
+ when /(?:b)$/
36
+ B
37
+ else
38
+ raise ArgumentError, "Unknown bytes value '#{text}'"
39
+ end
40
+ end
41
+
42
+ def human_readable(number)
43
+ value, unit = if number > PB
44
+ [number / PB, "pb"]
45
+ elsif number > TB
46
+ [number / TB, "tb"]
47
+ elsif number > GB
48
+ [number / GB, "gb"]
49
+ elsif number > MB
50
+ [number / MB, "mb"]
51
+ elsif number > KB
52
+ [number / KB, "kb"]
53
+ else
54
+ [number, "b"]
55
+ end
56
+
57
+ format("%.2d%s", value, unit)
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ module Ji2p
2
+ VERSION = '0.0.4'.freeze unless defined? VERSION
3
+ end
@@ -0,0 +1,16 @@
1
+ # this is a generated file, to avoid over-writing it just delete this comment
2
+ begin
3
+ require 'jar_dependencies'
4
+ rescue LoadError
5
+ require 'net/i2p/router/0.9.43/router-0.9.43.jar'
6
+ require 'net/i2p/client/mstreaming/0.9.43/mstreaming-0.9.43.jar'
7
+ require 'net/i2p/client/streaming/0.9.43/streaming-0.9.43.jar'
8
+ require 'net/i2p/i2p/0.9.43/i2p-0.9.43.jar'
9
+ end
10
+
11
+ if defined? Jars
12
+ require_jar 'net.i2p', 'router', '0.9.43'
13
+ require_jar 'net.i2p.client', 'mstreaming', '0.9.43'
14
+ require_jar 'net.i2p.client', 'streaming', '0.9.43'
15
+ require_jar 'net.i2p', 'i2p', '0.9.43'
16
+ end
@@ -0,0 +1,148 @@
1
+ class Object
2
+ def try(*a, &b)
3
+ if a.empty? && block_given?
4
+ yield self
5
+ else
6
+ public_send(*a, &b) if respond_to?(a.first)
7
+ end
8
+ end
9
+ end
10
+
11
+ class NilClass
12
+ def try(*args)
13
+ nil
14
+ end
15
+
16
+ def method_missing(method, *args)
17
+ nil
18
+ end
19
+ end
20
+
21
+ Optional = Struct.new(:value) do
22
+ def and_then(&block)
23
+ if value.nil?
24
+ Optional.new(nil)
25
+ else
26
+ block.call(value)
27
+ end
28
+ end
29
+
30
+ def method_missing(*args, &block)
31
+ and_then do |value|
32
+ Optional.new(value.public_send(*args, &block))
33
+ end
34
+ end
35
+ end
36
+
37
+ Many = Struct.new(:values) do
38
+ def and_then(&block)
39
+ Many.new(
40
+ values.map(&block).flat_map(&:values)
41
+ )
42
+ end
43
+ end
44
+
45
+ Eventually = Struct.new(:block) do
46
+ def and_then(&block)
47
+ Eventually.new do |success|
48
+ run do |value|
49
+ block.call(value).run(&success)
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ module Monad
56
+ def within(&block)
57
+ and_then do |value|
58
+ self.class.from_value(block.call(value))
59
+ end
60
+ end
61
+ end
62
+
63
+ Optional.include(Monad)
64
+ Many.include(Monad)
65
+ Eventually.include(Monad)
66
+
67
+
68
+ class Maybe
69
+ class Some
70
+ end
71
+ class None
72
+ end
73
+ end
74
+
75
+ module Functional
76
+ extend self
77
+ class Option
78
+ (Enumerable.instance_methods << :each).each do |enumerable_method|
79
+ define_method(enumerable_method) do |*args, &block|
80
+ res = enumerable_value.send(enumerable_method, *args, &block)
81
+ res.respond_to?(:each) ? Option(res.first) : res
82
+ end
83
+ end
84
+
85
+ alias_method :enumerable_value, :to_a
86
+ end
87
+
88
+ def Option(value)
89
+ if value.nil? || (value.respond_to?(:length) && value.length == 0)
90
+ None()
91
+ else
92
+ Some(value)
93
+ end
94
+ end
95
+
96
+ class None < Option
97
+ def get
98
+ fail 'No such element'
99
+ end
100
+
101
+ def or_else(default = nil)
102
+ block_given? ? yield : default
103
+ end
104
+
105
+ def method_missing(*)
106
+ self
107
+ end
108
+
109
+ private
110
+ def enumerable_value
111
+ []
112
+ end
113
+ end
114
+
115
+ def None
116
+ None.new
117
+ end
118
+
119
+ class Some < Option
120
+ def initialize(value)
121
+ @value = value
122
+ end
123
+
124
+ def get
125
+ value
126
+ end
127
+
128
+ def or_else(*)
129
+ value
130
+ end
131
+
132
+ def method_missing(method_sym, *args, &block)
133
+ map { |value| value.send(method_sym, *args, &block) }
134
+ end
135
+
136
+ private
137
+ attr_reader :value
138
+
139
+ def enumerable_value
140
+ [value]
141
+ end
142
+ end
143
+
144
+ def Some(value)
145
+ Some.new(value)
146
+ end
147
+ end
148
+
metadata ADDED
@@ -0,0 +1,392 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ji2p
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: universal-java-11
6
+ authors:
7
+ - Mikal Villa
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-11-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ name: bundler
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 4.1.11
33
+ name: activesupport
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 4.1.11
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.10.0
47
+ name: httparty
48
+ prerelease: false
49
+ type: :runtime
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.10.0
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.0.18
61
+ name: activerecord
62
+ prerelease: false
63
+ type: :runtime
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.18
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ name: activerecord-jdbc-adapter
76
+ prerelease: false
77
+ type: :runtime
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ name: activerecord-jdbcsqlite3-adapter
90
+ prerelease: false
91
+ type: :runtime
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ name: dbi
104
+ prerelease: false
105
+ type: :runtime
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ name: dbd-jdbc
118
+ prerelease: false
119
+ type: :runtime
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ name: puma
132
+ prerelease: false
133
+ type: :runtime
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ name: jruby-rack
146
+ prerelease: false
147
+ type: :runtime
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 1.5.2
159
+ name: rack
160
+ prerelease: false
161
+ type: :runtime
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 1.5.2
167
+ - !ruby/object:Gem::Dependency
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ name: jar-dependencies
174
+ prerelease: false
175
+ type: :runtime
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ name: awesome_print
188
+ prerelease: false
189
+ type: :development
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ name: rake
202
+ prerelease: false
203
+ type: :development
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ name: rspec
216
+ prerelease: false
217
+ type: :development
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ name: pry
230
+ prerelease: false
231
+ type: :development
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ name: sinatra
244
+ prerelease: false
245
+ type: :development
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '3.0'
257
+ name: irbtools
258
+ prerelease: false
259
+ type: :development
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: '3.0'
265
+ - !ruby/object:Gem::Dependency
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ name: warbler
272
+ prerelease: false
273
+ type: :development
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ requirement: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '3.3'
285
+ name: ruby-maven
286
+ prerelease: false
287
+ type: :development
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - "~>"
291
+ - !ruby/object:Gem::Version
292
+ version: '3.3'
293
+ description: JRuby interface for I2P
294
+ email: mikalv@mikalv.net
295
+ executables: []
296
+ extensions: []
297
+ extra_rdoc_files: []
298
+ files:
299
+ - bin/bundle
300
+ - bin/ctxirb
301
+ - bin/simple_http_server
302
+ - bin/simple_outproxy
303
+ - lib/actor_system/actor.rb
304
+ - lib/actor_system/concurrent/processor.rb
305
+ - lib/actor_system/concurrent/worker.rb
306
+ - lib/actor_system/core/minimal.rb
307
+ - lib/actor_system/core/observable_implementation.rb
308
+ - lib/actor_system/core/props.rb
309
+ - lib/actor_system/dispatcher.rb
310
+ - lib/actor_system/mailbox.rb
311
+ - lib/actor_system/message.rb
312
+ - lib/core_ext.rb
313
+ - lib/gen_server.rb
314
+ - lib/ji2p.rb
315
+ - lib/ji2p/bundler.rb
316
+ - lib/ji2p/cluster.rb
317
+ - lib/ji2p/cluster/etcd.rb
318
+ - lib/ji2p/cluster/etcd/version3.rb
319
+ - lib/ji2p/cluster/kubernetes.rb
320
+ - lib/ji2p/cluster/kubernetes/kube_api.rb
321
+ - lib/ji2p/concurrent.rb
322
+ - lib/ji2p/concurrent_executor.rb
323
+ - lib/ji2p/config.rb
324
+ - lib/ji2p/control.rb
325
+ - lib/ji2p/control/client_manager.rb
326
+ - lib/ji2p/control/dest.rb
327
+ - lib/ji2p/control/keypair.rb
328
+ - lib/ji2p/control/server.rb
329
+ - lib/ji2p/control/socket_manager.rb
330
+ - lib/ji2p/control/tunnel_manager.rb
331
+ - lib/ji2p/environment.rb
332
+ - lib/ji2p/package/gem_installer.rb
333
+ - lib/ji2p/package/gemfile.rb
334
+ - lib/ji2p/package/jar_dependencies.rb
335
+ - lib/ji2p/package/proxy_support.rb
336
+ - lib/ji2p/rspec.rb
337
+ - lib/ji2p/server.rb
338
+ - lib/ji2p/server/api.rb
339
+ - lib/ji2p/server/database.rb
340
+ - lib/ji2p/server/http.rb
341
+ - lib/ji2p/server/http_server.rb
342
+ - lib/ji2p/server/initializer.rb
343
+ - lib/ji2p/server/launcher.rb
344
+ - lib/ji2p/server/models.rb
345
+ - lib/ji2p/server/models/base_record.rb
346
+ - lib/ji2p/server/models/keypair.rb
347
+ - lib/ji2p/server/models/tunnel.rb
348
+ - lib/ji2p/startup.rb
349
+ - lib/ji2p/startup/bootstrap.rb
350
+ - lib/ji2p/startup/client_application.rb
351
+ - lib/ji2p/startup/router_manager.rb
352
+ - lib/ji2p/startup/sinatra_app.rb
353
+ - lib/ji2p/startup/worker.rb
354
+ - lib/ji2p/utils/blocking_queue.rb
355
+ - lib/ji2p/utils/byte_value.rb
356
+ - lib/ji2p/version.rb
357
+ - lib/ji2p_jars.rb
358
+ - lib/maybe.rb
359
+ - lib/net/i2p/client/mstreaming/0.9.43/mstreaming-0.9.43.jar
360
+ - lib/net/i2p/client/streaming/0.9.43/streaming-0.9.43.jar
361
+ - lib/net/i2p/i2p/0.9.43/i2p-0.9.43.jar
362
+ - lib/net/i2p/router/0.9.43/router-0.9.43.jar
363
+ homepage: https://github.com/mikalv/ji2p
364
+ licenses:
365
+ - Apache-2.0
366
+ metadata:
367
+ allowed_push_host: https://rubygems.org
368
+ post_install_message:
369
+ rdoc_options: []
370
+ require_paths:
371
+ - lib
372
+ required_ruby_version: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
377
+ required_rubygems_version: !ruby/object:Gem::Requirement
378
+ requirements:
379
+ - - ">="
380
+ - !ruby/object:Gem::Version
381
+ version: '0'
382
+ requirements:
383
+ - jar net.i2p.client, streaming, 0.9.43
384
+ - jar net.i2p.client, mstreaming, 0.9.43
385
+ - jar net.i2p, i2p, 0.9.43
386
+ - jar net.i2p, router, 0.9.43
387
+ rubyforge_project:
388
+ rubygems_version: 2.7.10
389
+ signing_key:
390
+ specification_version: 4
391
+ summary: JRuby interface for I2P
392
+ test_files: []