spikard 0.1.2 → 0.2.1
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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +626 -553
- data/ext/spikard_rb/Cargo.toml +17 -16
- data/ext/spikard_rb/extconf.rb +10 -10
- data/ext/spikard_rb/src/lib.rs +6 -6
- data/lib/spikard/app.rb +374 -328
- data/lib/spikard/background.rb +27 -27
- data/lib/spikard/config.rb +396 -396
- data/lib/spikard/converters.rb +85 -85
- data/lib/spikard/handler_wrapper.rb +116 -116
- data/lib/spikard/provide.rb +228 -0
- data/lib/spikard/response.rb +109 -109
- data/lib/spikard/schema.rb +243 -243
- data/lib/spikard/sse.rb +111 -111
- data/lib/spikard/streaming_response.rb +21 -21
- data/lib/spikard/testing.rb +221 -220
- data/lib/spikard/upload_file.rb +131 -131
- data/lib/spikard/version.rb +5 -5
- data/lib/spikard/websocket.rb +59 -59
- data/lib/spikard.rb +43 -42
- data/sig/spikard.rbs +349 -336
- data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/mise.toml +5 -0
- metadata +23 -5
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spikard
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Na'aman Hirschfeld
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-11-
|
|
11
|
+
date: 2025-11-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: websocket-client-simple
|
|
@@ -25,8 +25,21 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0.8'
|
|
27
27
|
description: |
|
|
28
|
-
Spikard
|
|
29
|
-
|
|
28
|
+
Spikard is a Rust-centric multi-language HTTP toolkit providing a high-performance core library
|
|
29
|
+
and language bindings (Python, Node.js, Ruby, PHP, WebAssembly) to build and validate typed web services.
|
|
30
|
+
|
|
31
|
+
The Ruby binding uses Magnus for zero-overhead FFI, providing Sinatra-style routing, full async/await support,
|
|
32
|
+
WebSockets, Server-Sent Events, request validation with JSON Schema and dry-schema, lifecycle hooks,
|
|
33
|
+
dependency injection, and comprehensive middleware stack (compression, rate limiting, authentication).
|
|
34
|
+
|
|
35
|
+
Features:
|
|
36
|
+
- Zero-copy Rust-to-Ruby serialization via Magnus
|
|
37
|
+
- Async-first with Tokio and Axum backing
|
|
38
|
+
- Type-safe RBS type definitions for Steep
|
|
39
|
+
- Tower-HTTP middleware stack
|
|
40
|
+
- Lifecycle hooks (onRequest, preValidation, preHandler, onResponse, onError)
|
|
41
|
+
- Built-in WebSocket and SSE support
|
|
42
|
+
- Request validation with JSON Schema
|
|
30
43
|
email:
|
|
31
44
|
- nhirschfeld@gmail.com
|
|
32
45
|
executables: []
|
|
@@ -45,6 +58,7 @@ files:
|
|
|
45
58
|
- lib/spikard/config.rb
|
|
46
59
|
- lib/spikard/converters.rb
|
|
47
60
|
- lib/spikard/handler_wrapper.rb
|
|
61
|
+
- lib/spikard/provide.rb
|
|
48
62
|
- lib/spikard/response.rb
|
|
49
63
|
- lib/spikard/schema.rb
|
|
50
64
|
- lib/spikard/sse.rb
|
|
@@ -54,6 +68,7 @@ files:
|
|
|
54
68
|
- lib/spikard/version.rb
|
|
55
69
|
- lib/spikard/websocket.rb
|
|
56
70
|
- sig/spikard.rbs
|
|
71
|
+
- vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.6.2/mise.toml
|
|
57
72
|
homepage: https://github.com/Goldziher/spikard
|
|
58
73
|
licenses:
|
|
59
74
|
- MIT
|
|
@@ -61,6 +76,9 @@ metadata:
|
|
|
61
76
|
homepage_uri: https://github.com/Goldziher/spikard
|
|
62
77
|
source_code_uri: https://github.com/Goldziher/spikard
|
|
63
78
|
changelog_uri: https://github.com/Goldziher/spikard/blob/main/CHANGELOG.md
|
|
79
|
+
documentation_uri: https://github.com/Goldziher/spikard/tree/main/packages/ruby#documentation
|
|
80
|
+
bug_tracker_uri: https://github.com/Goldziher/spikard/issues
|
|
81
|
+
funding_uri: https://github.com/Goldziher/spikard
|
|
64
82
|
rubygems_mfa_required: 'true'
|
|
65
83
|
post_install_message:
|
|
66
84
|
rdoc_options: []
|
|
@@ -80,5 +98,5 @@ requirements: []
|
|
|
80
98
|
rubygems_version: 3.5.22
|
|
81
99
|
signing_key:
|
|
82
100
|
specification_version: 4
|
|
83
|
-
summary:
|
|
101
|
+
summary: High-performance HTTP toolkit with Rust core and Ruby bindings
|
|
84
102
|
test_files: []
|