You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -35,14 +35,14 @@ <h2>Event Dispatcher for Python</h2>
35
35
<h2class="header-light regular-pad">What is Whistle?</h2>
36
36
<blockquote>
37
37
<p>
38
-
Whistle is an Event Dispatcher library for the Python 3.5+ language.
38
+
Whistle is a lightweight Event Dispatcher library for Python 3.10+ that enables decoupled application communication through event dispatching and listening.
39
39
</p>
40
40
<p>
41
41
It's largely inspired from Symfony's EventDispatcher component.
42
42
</p>
43
43
<p>
44
44
Using an event dispatcher is a great way to write loosely coupled extensible code, having each part
45
-
only communicate using light events.
45
+
only communicate using light events, making your code more modular, testable, and maintainable.
46
46
</p>
47
47
</blockquote>
48
48
</div>
@@ -66,6 +66,26 @@ <h2 class="header-light regular-pad">What is Whistle?</h2>
66
66
67
67
<hr>
68
68
69
+
<divclass="row">
70
+
<h2>Key Features</h2>
71
+
<divclass="col-md-6">
72
+
<ul>
73
+
<li><strong>Synchronous and asynchronous dispatching</strong> - Choose the right dispatcher for your use case</li>
74
+
<li><strong>Priority-based listener execution</strong> - Control the order listeners run</li>
75
+
<li><strong>Event propagation control</strong> - Stop event flow when needed</li>
76
+
</ul>
77
+
</div>
78
+
<divclass="col-md-6">
79
+
<ul>
80
+
<li><strong>Type safety</strong> - Prevent mixing sync and async listeners</li>
81
+
<li><strong>Custom events</strong> - Attach domain-specific data to events</li>
82
+
<li><strong>Zero dependencies</strong> - Lightweight and easy to integrate</li>
83
+
</ul>
84
+
</div>
85
+
</div>
86
+
87
+
<hr>
88
+
69
89
<divclass="row">
70
90
<h2>Quick start</h2>
71
91
@@ -86,9 +106,17 @@ <h3>Add a listener to react to events</h3>
0 commit comments