Skip to content

Commit e80c3b1

Browse files
authored
Merge pull request #50 from saviorand/feature/no-string-conversions
Improve perfomance and update to Mojo 24.4
2 parents ac7bd4d + 06bb740 commit e80c3b1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+4821
-2091
lines changed

.github/workflows/package.yml renamed to .github/workflows/main.yml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
1-
name: Package and Release
1+
name: Main pipeline
22

33
on:
44
push:
55
branches:
66
- main
7+
78
permissions:
89
contents: write
10+
911
jobs:
10-
run-tests:
11-
name: Release package
12+
setup:
13+
name: Setup environment and install dependencies
1214
runs-on: ubuntu-latest
13-
1415
steps:
1516
- name: Checkout code
1617
uses: actions/checkout@v2
17-
1818
- name: Install modular
1919
run: |
2020
curl -s https://get.modular.com | sh -
2121
modular auth examples
22-
2322
- name: Install Mojo
2423
run: modular install mojo
25-
2624
- name: Add to PATH
2725
run: echo "/home/runner/.modular/pkg/packages.modular.com_mojo/bin" >> $GITHUB_PATH
28-
29-
- name: Create package
26+
test:
27+
name: Run tests
28+
runs-on: ubuntu-latest
29+
needs: setup
30+
steps:
31+
- name: Run the test suite
32+
run: mojo run_tests.mojo
33+
package:
34+
name: Create package
35+
runs-on: ubuntu-latest
36+
needs: setup
37+
steps:
38+
- name: Run the package command
3039
run: mojo package lightbug_http -o lightbug_http.mojopkg
31-
3240
- name: Upload package to release
3341
uses: svenstaro/upload-release-action@v2
3442
with:

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.📦
22
.DS_Store
3-
.mojoenv
3+
.mojoenv
4+
install_id

bench.mojo

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,25 @@ import benchmark
22
from lightbug_http.sys.server import SysServer
33
from lightbug_http.python.server import PythonServer
44
from lightbug_http.service import TechEmpowerRouter
5-
from lightbug_http.tests.utils import (
5+
from tests.utils import (
66
TestStruct,
77
FakeResponder,
88
new_fake_listener,
99
FakeServer,
1010
getRequest,
1111
)
12-
from external.libc import __test_socket_client__
1312

1413

1514
fn main():
1615
try:
17-
var server = SysServer()
16+
var server = SysServer(tcp_keep_alive=True)
1817
var handler = TechEmpowerRouter()
1918
server.listen_and_serve("0.0.0.0:8080", handler)
2019
except e:
2120
print("Error starting server: " + e.__str__())
2221
return
2322

2423

25-
fn lightbug_benchmark_get_1req_per_conn():
26-
var req_report = benchmark.run[__test_socket_client__](1, 10000, 0, 3, 100)
27-
print("Request: ")
28-
req_report.print(benchmark.Unit.ns)
29-
30-
3124
fn lightbug_benchmark_server():
3225
var server_report = benchmark.run[run_fake_server](max_iters=1)
3326
print("Server: ")
@@ -54,9 +47,9 @@ fn run_fake_server():
5447

5548
fn init_test_and_set_a_copy() -> None:
5649
var test = TestStruct("a", "b")
57-
var newtest = test.set_a_copy("c")
50+
_ = test.set_a_copy("c")
5851

5952

6053
fn init_test_and_set_a_direct() -> None:
6154
var test = TestStruct("a", "b")
62-
var newtest = test.set_a_direct("c")
55+
_ = test.set_a_direct("c")

client.mojo

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ from lightbug_http.sys.client import MojoClient
55

66
fn test_request(inout client: MojoClient) raises -> None:
77
var uri = URI("http://httpbin.org/status/404")
8+
try:
9+
uri.parse()
10+
except e:
11+
print("error parsing uri: " + e.__str__())
12+
13+
814
var request = HTTPRequest(uri)
915
var response = client.do(request)
1016

@@ -17,11 +23,12 @@ fn test_request(inout client: MojoClient) raises -> None:
1723
# print parsed headers (only some are parsed for now)
1824
print("Content-Type:", String(response.header.content_type()))
1925
print("Content-Length", response.header.content_length())
20-
print("Connection:", response.header.connection_close())
2126
print("Server:", String(response.header.server()))
2227

28+
print("Is connection set to connection-close? ", response.header.connection_close())
29+
2330
# print body
24-
print(String(response.get_body()))
31+
print(String(response.get_body_bytes()))
2532

2633

2734
fn main() raises -> None:

external/gojo/__init__.mojo

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +0,0 @@
1-
# gojo, created by thastoasty, https://github.com/thatstoasty/gojo/

0 commit comments

Comments
 (0)