trusted 0.2.1 → 0.3.2

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.
@@ -1,70 +0,0 @@
1
- use std::sync::mpsc;
2
- use std::thread;
3
-
4
- use hyper::server::Server as HyperServer;
5
- use hyperlocal::UnixSocketServer;
6
- use ruru::{Proc, VM};
7
-
8
- use handler::Handler;
9
- use request_processor::RequestProcessor;
10
-
11
- pub struct Server {
12
- addr: String,
13
- }
14
-
15
- enum ServerType {
16
- Unix,
17
- Tcp,
18
- }
19
-
20
- impl Server {
21
- pub fn new(addr: String) -> Self {
22
- Server { addr: addr }
23
- }
24
-
25
- pub fn listen(self, ruby_handler: Proc) {
26
- println!("[rust] Start listening");
27
-
28
- let (request_sender, request_receiver) = mpsc::channel();
29
- let (response_sender, response_receiver) = mpsc::channel();
30
-
31
- let handler = Handler::new(request_sender, response_receiver);
32
-
33
- let server_type = ServerType::Unix;
34
-
35
- thread::spawn(move || {
36
- let handler_function = || -> () {
37
- match server_type {
38
- ServerType::Unix => {
39
- UnixSocketServer::new("/tmp/trusted.sock").unwrap()
40
- .handle(handler).unwrap();
41
- },
42
- ServerType::Tcp => {
43
- HyperServer::http(self.addr.as_str()).unwrap()
44
- .handle(handler).unwrap();
45
- }
46
- };
47
- };
48
-
49
- let unblock_function = || {
50
- ()
51
- };
52
-
53
- VM::thread_call_without_gvl(
54
- handler_function,
55
- Some(unblock_function)
56
- );
57
- });
58
-
59
- loop {
60
- println!("[rust] Trying to receive from sender");
61
- let request = request_receiver.recv().unwrap();
62
-
63
- println!("[rust] Sending to Ruby");
64
- let response = RequestProcessor::new(request, &ruby_handler).handle();
65
-
66
- println!("[rust] Received response from Ruby, sending back to Hyper");
67
- response_sender.send(response.into()).unwrap();
68
- }
69
- }
70
- }
@@ -1,16 +0,0 @@
1
- module Trusted
2
- class Request
3
- attr_reader :method, :uri, :path_info, :query_string, :remote_addr, :server_port, :headers, :body
4
-
5
- def initialize(method, uri, path_info, query_string, remote_addr, server_port, headers, body)
6
- @method = method
7
- @uri = uri
8
- @path_info = path_info
9
- @query_string = query_string
10
- @remote_addr = remote_addr
11
- @server_port = server_port
12
- @headers = headers
13
- @body = body
14
- end
15
- end
16
- end
@@ -1,5 +0,0 @@
1
- module Trusted
2
- class Response
3
- attr_accessor :status, :headers, :body
4
- end
5
- end