ji2p 0.0.4-universal-java-11

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