Skip to content

Commit 3e4b3e1

Browse files
committed
feat: initial implementation
- feat: reactive (async request-reply) websocket server - feat: periodic broadcast websocket server - feat: endpoint based pubsub broadcast websocket server - feat: re-export used dependencies to avoid dependencies nightmare - feat: sentry option to capture panic - feat: re-export MiMalloc as a secure memory allocator option
1 parent cc59a49 commit 3e4b3e1

12 files changed

+1323
-680
lines changed

.github/workflows/build.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Build
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v1
10+
- name: Compile Tests
11+
run: cargo build --verbose
12+
- name: Unit Tests
13+
run: cargo test
14+
- name: Linter
15+
run: cargo clippy --all-targets --all-features -- -D warnings --verbose

.gitignore

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
# Generated by Cargo
2-
# will have compiled files and executables
3-
/target/
1+
# Compiled files and executables
2+
/target
43

5-
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
64
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
75
Cargo.lock
86

97
# These are backup files generated by rustfmt
108
**/*.rs.bk
9+
10+
# VSCode
11+
.vscode/

Cargo.toml

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
[package]
2+
name = "bitwyre_ws_core"
3+
version = "0.1.0"
4+
edition = "2018"
5+
publish = false
6+
7+
8+
# Profiles (used by cargo build/test/bench)
9+
10+
[profile.dev]
11+
opt-level = 0
12+
debug = true
13+
rpath = false
14+
lto = false
15+
debug-assertions = true
16+
codegen-units = 16
17+
panic = 'unwind'
18+
incremental = true
19+
overflow-checks = true
20+
21+
[profile.release]
22+
opt-level = 3
23+
debug = false
24+
rpath = false
25+
lto = true
26+
debug-assertions = false
27+
codegen-units = 1
28+
panic = 'abort'
29+
incremental = false
30+
overflow-checks = false
31+
32+
[profile.test]
33+
opt-level = 0
34+
debug = 2
35+
rpath = false
36+
lto = false
37+
debug-assertions = true
38+
codegen-units = 16
39+
incremental = true
40+
overflow-checks = true
41+
42+
[profile.bench]
43+
opt-level = 3
44+
debug = false
45+
rpath = false
46+
lto = true
47+
debug-assertions = false
48+
codegen-units = 16
49+
incremental = false
50+
overflow-checks = false
51+
52+
53+
# Package dependencies
54+
55+
[dependencies]
56+
openssl = { version = "*", features = ["vendored"] }
57+
serde = { version = "*", features = ["derive"] }
58+
serde_json = "*"
59+
chrono = { version = "*", features = ["serde"] }
60+
uuid = { version = "=0.7.*", features = ["serde", "v4"] }
61+
actix = "*"
62+
actix-rt = "*"
63+
actix-server = "=0.6.*"
64+
actix-codec = "*"
65+
actix-web = "*"
66+
actix-web-actors = "*"
67+
env_logger = "=0.7.1"
68+
url = "*"
69+
log = "*"
70+
sentry = "*"
71+
futures = "*"
72+
futures-locks = "*"
73+
crossbeam-channel = "*"
74+
crossbeam-utils = "*"
75+
mimalloc = { version = "*", default-features = false }

0 commit comments

Comments
 (0)