Skip to content

Commit de0f946

Browse files
committed
mojo format all files
1 parent 7932d9c commit de0f946

25 files changed

+387
-195
lines changed

bench.mojo

Lines changed: 55 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,48 @@ from tests.utils import (
1111
FakeServer,
1212
)
1313

14-
alias headers = bytes('''GET /index.html HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0\r\nContent-Type: text/html\r\nContent-Length: 1234\r\nConnection: close\r\nTrailer: end-of-message\r\n\r\n''')
14+
alias headers = bytes(
15+
"""GET /index.html HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0\r\nContent-Type: text/html\r\nContent-Length: 1234\r\nConnection: close\r\nTrailer: end-of-message\r\n\r\n"""
16+
)
1517
alias body = bytes(String("I am the body of an HTTP request") * 5)
16-
alias Request = bytes('''GET /index.html HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0\r\nContent-Type: text/html\r\nContent-Length: 1234\r\nConnection: close\r\nTrailer: end-of-message\r\n\r\n''') + body
17-
alias Response = bytes("HTTP/1.1 200 OK\r\nserver: lightbug_http\r\ncontent-type: application/octet-stream\r\nconnection: keep-alive\r\ncontent-length: 13\r\ndate: 2024-06-02T13:41:50.766880+00:00\r\n\r\n") + body
18+
alias Request = bytes(
19+
"""GET /index.html HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0\r\nContent-Type: text/html\r\nContent-Length: 1234\r\nConnection: close\r\nTrailer: end-of-message\r\n\r\n"""
20+
) + body
21+
alias Response = bytes(
22+
"HTTP/1.1 200 OK\r\nserver: lightbug_http\r\ncontent-type:"
23+
" application/octet-stream\r\nconnection: keep-alive\r\ncontent-length:"
24+
" 13\r\ndate: 2024-06-02T13:41:50.766880+00:00\r\n\r\n"
25+
) + body
26+
1827

1928
fn main():
2029
run_benchmark()
2130

31+
2232
fn run_benchmark():
2333
try:
2434
var config = BenchConfig(warmup_iters=100)
2535
config.verbose_timing = True
2636
config.tabular_view = True
2737
var m = Bench(config)
28-
m.bench_function[lightbug_benchmark_header_encode](BenchId("HeaderEncode"))
29-
m.bench_function[lightbug_benchmark_header_parse](BenchId("HeaderParse"))
30-
m.bench_function[lightbug_benchmark_request_encode](BenchId("RequestEncode"))
31-
m.bench_function[lightbug_benchmark_request_parse](BenchId("RequestParse"))
32-
m.bench_function[lightbug_benchmark_response_encode](BenchId("ResponseEncode"))
33-
m.bench_function[lightbug_benchmark_response_parse](BenchId("ResponseParse"))
38+
m.bench_function[lightbug_benchmark_header_encode](
39+
BenchId("HeaderEncode")
40+
)
41+
m.bench_function[lightbug_benchmark_header_parse](
42+
BenchId("HeaderParse")
43+
)
44+
m.bench_function[lightbug_benchmark_request_encode](
45+
BenchId("RequestEncode")
46+
)
47+
m.bench_function[lightbug_benchmark_request_parse](
48+
BenchId("RequestParse")
49+
)
50+
m.bench_function[lightbug_benchmark_response_encode](
51+
BenchId("ResponseEncode")
52+
)
53+
m.bench_function[lightbug_benchmark_response_parse](
54+
BenchId("ResponseParse")
55+
)
3456
m.dump_report()
3557
except:
3658
print("failed to start benchmark")
@@ -41,18 +63,21 @@ var headers_struct = Headers(
4163
Header("Content-Length", "1234"),
4264
Header("Connection", "close"),
4365
Header("Date", "some-datetime"),
44-
Header("SomeHeader", "SomeValue")
66+
Header("SomeHeader", "SomeValue"),
4567
)
4668

69+
4770
@parameter
4871
fn lightbug_benchmark_response_encode(inout b: Bencher):
4972
@always_inline
5073
@parameter
5174
fn response_encode():
52-
var res = HTTPResponse(body, headers = headers_struct)
75+
var res = HTTPResponse(body, headers=headers_struct)
5376
_ = encode(res^)
77+
5478
b.iter[response_encode]()
5579

80+
5681
@parameter
5782
fn lightbug_benchmark_response_parse(inout b: Bencher):
5883
@always_inline
@@ -63,8 +88,10 @@ fn lightbug_benchmark_response_parse(inout b: Bencher):
6388
_ = HTTPResponse.from_bytes(res^)
6489
except:
6590
pass
91+
6692
b.iter[response_parse]()
6793

94+
6895
@parameter
6996
fn lightbug_benchmark_request_parse(inout b: Bencher):
7097
@always_inline
@@ -75,21 +102,25 @@ fn lightbug_benchmark_request_parse(inout b: Bencher):
75102
_ = HTTPRequest.from_bytes("127.0.0.1/path", 4096, r^)
76103
except:
77104
pass
105+
78106
b.iter[request_parse]()
79107

108+
80109
@parameter
81110
fn lightbug_benchmark_request_encode(inout b: Bencher):
82111
@always_inline
83112
@parameter
84113
fn request_encode():
85114
var req = HTTPRequest(
86115
URI.parse("http://127.0.0.1:8080/some-path")[URI],
87-
headers = headers_struct,
88-
body = body
116+
headers=headers_struct,
117+
body=body,
89118
)
90119
_ = encode(req^)
120+
91121
b.iter[request_encode]()
92-
122+
123+
93124
@parameter
94125
fn lightbug_benchmark_header_encode(inout b: Bencher):
95126
@always_inline
@@ -98,8 +129,10 @@ fn lightbug_benchmark_header_encode(inout b: Bencher):
98129
var b = ByteWriter()
99130
var h = headers_struct
100131
h.encode_to(b)
132+
101133
b.iter[header_encode]()
102134

135+
103136
@parameter
104137
fn lightbug_benchmark_header_parse(inout b: Bencher):
105138
@always_inline
@@ -115,16 +148,21 @@ fn lightbug_benchmark_header_parse(inout b: Bencher):
115148

116149
b.iter[header_parse]()
117150

151+
118152
fn lightbug_benchmark_server():
119153
var server_report = benchmark.run[run_fake_server](max_iters=1)
120154
print("Server: ")
121155
server_report.print(benchmark.Unit.ms)
122156

123157

124158
fn lightbug_benchmark_misc() -> None:
125-
var direct_set_report = benchmark.run[init_test_and_set_a_direct](max_iters=1)
159+
var direct_set_report = benchmark.run[init_test_and_set_a_direct](
160+
max_iters=1
161+
)
126162

127-
var recreating_set_report = benchmark.run[init_test_and_set_a_copy](max_iters=1)
163+
var recreating_set_report = benchmark.run[init_test_and_set_a_copy](
164+
max_iters=1
165+
)
128166

129167
print("Direct set: ")
130168
direct_set_report.print(benchmark.Unit.ms)
@@ -134,6 +172,7 @@ fn lightbug_benchmark_misc() -> None:
134172

135173
var GetRequest = HTTPRequest(URI.parse("http://127.0.0.1/path")[URI])
136174

175+
137176
fn run_fake_server():
138177
var handler = FakeResponder()
139178
var listener = new_fake_listener(2, encode(GetRequest))

bench_server.mojo

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from lightbug_http.sys.server import SysServer
22
from lightbug_http.service import TechEmpowerRouter
33

4+
45
def main():
56
try:
67
var server = SysServer(tcp_keep_alive=True)
78
var handler = TechEmpowerRouter()
89
server.listen_and_serve("0.0.0.0:8080", handler)
910
except e:
1011
print("Error starting server: " + e.__str__())
11-
return
12+
return

client.mojo

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from lightbug_http import *
22
from lightbug_http.sys.client import MojoClient
33

4+
45
fn test_request(inout client: MojoClient) raises -> None:
56
var uri = URI.parse_raises("http://httpbin.org/status/404")
67

7-
88
var request = HTTPRequest(uri)
99
var response = client.do(request^)
1010

@@ -16,12 +16,14 @@ fn test_request(inout client: MojoClient) raises -> None:
1616
print("Content-Length", response.headers["Content-Length"])
1717
print("Server:", to_string(response.headers["Server"]))
1818

19-
print("Is connection set to connection-close? ", response.connection_close())
19+
print(
20+
"Is connection set to connection-close? ", response.connection_close()
21+
)
2022

2123
# print body
2224
print(to_string(response.body_raw))
2325

2426

2527
fn main() raises -> None:
2628
var client = MojoClient()
27-
test_request(client)
29+
test_request(client)

lightbug_http/__init__.mojo

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ from lightbug_http.service import HTTPService, Welcome
44
from lightbug_http.sys.server import SysServer
55
from lightbug_http.strings import to_string
66

7+
78
trait DefaultConstructible:
89
fn __init__(inout self) raises:
910
...

lightbug_http/error.mojo

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ from lightbug_http.io.bytes import bytes
33

44
alias TODO_MESSAGE = String("TODO").as_bytes()
55

6+
67
# TODO: Custom error handlers provided by the user
78
@value
89
struct ErrorHandler:
910
fn Error(self) -> HTTPResponse:
10-
return HTTPResponse(TODO_MESSAGE)
11+
return HTTPResponse(TODO_MESSAGE)

lightbug_http/header.mojo

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ from collections import Dict
44
from lightbug_http.utils import ByteReader, ByteWriter, is_newline, is_space
55
from lightbug_http.strings import rChar, nChar, lineBreak, to_string
66

7+
78
struct HeaderKey:
89
# TODO: Fill in more of these
910
alias CONNECTION = "connection"
@@ -12,22 +13,26 @@ struct HeaderKey:
1213
alias CONTENT_ENCODING = "content-encoding"
1314
alias DATE = "date"
1415

16+
1517
@value
1618
struct Header:
1719
var key: String
1820
var value: String
1921

22+
2023
@always_inline
2124
fn write_header(inout writer: Formatter, key: String, value: String):
2225
writer.write(key + ": ", value, lineBreak)
2326

27+
2428
@always_inline
2529
fn write_header(inout writer: ByteWriter, key: String, inout value: String):
26-
var k = key + ": "
30+
var k = key + ": "
2731
writer.write(k)
2832
writer.write(value)
2933
writer.write(lineBreak)
3034

35+
3136
@value
3237
struct Headers(Formattable, Stringable):
3338
"""Represents the header key/values in an http request/response.
@@ -59,7 +64,7 @@ struct Headers(Formattable, Stringable):
5964
return self._inner[key.lower()]
6065
except:
6166
return String()
62-
67+
6368
@always_inline
6469
fn __setitem__(inout self, key: String, value: String):
6570
self._inner[key.lower()] = value
@@ -72,11 +77,13 @@ struct Headers(Formattable, Stringable):
7277
except:
7378
return 0
7479

75-
fn parse_raw(inout self, inout r: ByteReader) raises -> (String, String, String):
80+
fn parse_raw(
81+
inout self, inout r: ByteReader
82+
) raises -> (String, String, String):
7683
var first_byte = r.peek()
7784
if not first_byte:
7885
raise Error("Failed to read first byte from response header")
79-
86+
8087
var first = r.read_word()
8188
r.increment()
8289
var second = r.read_word()
@@ -91,7 +98,7 @@ struct Headers(Formattable, Stringable):
9198
# TODO (bgreni): Handle possible trailing whitespace
9299
var value = r.read_line()
93100
self._inner[to_string(key^).lower()] = to_string(value^)
94-
101+
95102
return (to_string(first^), to_string(second^), to_string(third^))
96103

97104
fn format_to(self, inout writer: Formatter):
@@ -104,4 +111,3 @@ struct Headers(Formattable, Stringable):
104111

105112
fn __str__(self) -> String:
106113
return to_string(self)
107-

0 commit comments

Comments
 (0)