Skip to content

Commit 5fe2759

Browse files
committed
updated changelogs, docs, and version
1 parent 52c9930 commit 5fe2759

25 files changed

+2457
-416
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,35 @@
22

33
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
44

5+
## [0.26.0](https://github.com/ArkForgeLabs/Astra/compare/v0.25.1..v0.26.0) - 2025-07-17
6+
7+
### Bug Fixes
8+
9+
- delegate subcounter and enforce type preference - ([6b98b67](https://github.com/ArkForgeLabs/Astra/commit/6b98b678d4752378603ae309626102cfe39f2e82))
10+
11+
### Documentation
12+
13+
- data stores - ([a9f36c7](https://github.com/ArkForgeLabs/Astra/commit/a9f36c7286c9654aff1fcadbea1269bf0aa2b7c4))
14+
- finished `data-stores` docs - ([d9c57a2](https://github.com/ArkForgeLabs/Astra/commit/d9c57a24906ce5a4e0f7246b7b81fc6017bb2a34))
15+
16+
### Features
17+
18+
- implement observer pattern - ([14141a4](https://github.com/ArkForgeLabs/Astra/commit/14141a485910c72f89682ba13f2cd63d45d5566e))
19+
20+
### Miscellaneous Chores
21+
22+
- prefer function type for publish - ([ad6e812](https://github.com/ArkForgeLabs/Astra/commit/ad6e8124076c62babbeffb4a7f74b4c9d89a75a2))
23+
24+
### Performance
25+
26+
- hashed tables for observee-subscriber sets #26 - ([3a7ae14](https://github.com/ArkForgeLabs/Astra/commit/3a7ae14fbfdbd80bd3edd86527fe80ddc50c06df))
27+
- use a hash table to store subscribers - ([75f10be](https://github.com/ArkForgeLabs/Astra/commit/75f10be1db022c8df8db60ce07b4f30fae3d4a11))
28+
29+
### Refactoring
30+
31+
- add type hints - ([d165b53](https://github.com/ArkForgeLabs/Astra/commit/d165b53c0435b04a4ff223d0b5f01afc6b2b6657))
32+
- moved observable under `Astra` - ([e7c86ff](https://github.com/ArkForgeLabs/Astra/commit/e7c86ff1063d3eb1ba808a211707df34a16b8220))
33+
534
## [0.25.1](https://github.com/ArkForgeLabs/Astra/compare/v0.25.0..v0.25.1) - 2025-07-16
635

736
### Bug Fixes

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lua-astra"
3-
version = "0.25.1"
3+
version = "0.26.0"
44
authors = ["Elham Aryanpur <elhamaryanpur5@gmail.com>"]
55
description = "🔥 Blazingly Fast 🔥 web server runtime for Lua"
66
documentation = "https://astra.arkforge.net/docs/latest"

docs/docs/latest/404.html

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<!-- Book generated using mdBook -->
55
<meta charset="UTF-8">
66
<title>Page not found - ArkForge Astra</title>
7-
<base href="/">
7+
<base href="/docs/latest/">
88

99

1010
<!-- Custom HTML head -->
@@ -177,22 +177,6 @@ <h1 id="document-not-found-404"><a class="header" href="#document-not-found-404"
177177

178178
</div>
179179

180-
<!-- Livereload script (if served using the cli tool) -->
181-
<script>
182-
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
183-
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
184-
const socket = new WebSocket(wsAddress);
185-
socket.onmessage = function (event) {
186-
if (event.data === "reload") {
187-
socket.close();
188-
location.reload();
189-
}
190-
};
191-
192-
window.onbeforeunload = function() {
193-
socket.close();
194-
}
195-
</script>
196180

197181

198182

docs/docs/latest/getting_started.html

Lines changed: 68 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,74 @@ <h1 class="menu-title">ArkForge Astra</h1>
159159

160160
<div id="content" class="content">
161161
<main>
162-
<h1 id="getting-started"><a class="header" href="#getting-started">Getting Started</a></h1>
162+
<style>
163+
.mdbook-alerts {
164+
padding: 8px 16px;
165+
margin-bottom: 16px;
166+
border-left: 0.25em solid var(--mdbook-alerts-color);
167+
}
168+
169+
.mdbook-alerts > *:first-child {
170+
margin-top: 0;
171+
}
172+
173+
.mdbook-alerts > *:last-child {
174+
margin-bottom: 0;
175+
}
176+
177+
.mdbook-alerts-title {
178+
display: flex;
179+
font-weight: 600;
180+
align-items: center;
181+
line-height: 1;
182+
color: var(--mdbook-alerts-color);
183+
text-transform: capitalize;
184+
}
185+
186+
.mdbook-alerts-icon {
187+
display: inline-block;
188+
width: 1em;
189+
height: 1em;
190+
margin-right: 0.2em;
191+
background-color: currentColor;
192+
-webkit-mask: no-repeat center / 100%;
193+
mask: no-repeat center / 100%;
194+
-webkit-mask-image: var(--mdbook-alerts-icon);
195+
mask-image: var(--mdbook-alerts-icon);
196+
}
197+
198+
.mdbook-alerts-note {
199+
--mdbook-alerts-color: rgb(9, 105, 218);
200+
/* https://icon-sets.iconify.design/material-symbols/info-outline-rounded/ */
201+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 17q.425 0 .713-.288T13 16v-4q0-.425-.288-.712T12 11q-.425 0-.712.288T11 12v4q0 .425.288.713T12 17m0-8q.425 0 .713-.288T13 8q0-.425-.288-.712T12 7q-.425 0-.712.288T11 8q0 .425.288.713T12 9m0 13q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22m0-2q3.35 0 5.675-2.325T20 12q0-3.35-2.325-5.675T12 4Q8.65 4 6.325 6.325T4 12q0 3.35 2.325 5.675T12 20m0-8"%2F%3E%3C%2Fsvg%3E');
202+
}
203+
204+
.mdbook-alerts-tip {
205+
--mdbook-alerts-color: rgb(26, 127, 55);
206+
/* https://icon-sets.iconify.design/material-symbols/lightbulb-outline-rounded/ */
207+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 22q-.825 0-1.412-.587T10 20h4q0 .825-.587 1.413T12 22m-3-3q-.425 0-.712-.288T8 18q0-.425.288-.712T9 17h6q.425 0 .713.288T16 18q0 .425-.288.713T15 19zm-.75-3q-1.725-1.025-2.738-2.75T4.5 9.5q0-3.125 2.188-5.312T12 2q3.125 0 5.313 2.188T19.5 9.5q0 2.025-1.012 3.75T15.75 16zm.6-2h6.3q1.125-.8 1.738-1.975T17.5 9.5q0-2.3-1.6-3.9T12 4Q9.7 4 8.1 5.6T6.5 9.5q0 1.35.613 2.525T8.85 14M12 14"%2F%3E%3C%2Fsvg%3E');
208+
}
209+
210+
.mdbook-alerts-important {
211+
--mdbook-alerts-color: rgb(130, 80, 223);
212+
/* https://icon-sets.iconify.design/material-symbols/chat-info-outline-rounded/ */
213+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 7q.425 0 .713-.288T13 6q0-.425-.288-.712T12 5q-.425 0-.712.288T11 6q0 .425.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9q-.425 0-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18zm-.85-2H20V4H4v13.125zM4 16V4z"%2F%3E%3C%2Fsvg%3E');
214+
}
215+
216+
.mdbook-alerts-warning {
217+
--mdbook-alerts-color: rgb(154, 103, 0);
218+
/* https://icon-sets.iconify.design/material-symbols/warning-outline-rounded/ */
219+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M2.725 21q-.275 0-.5-.137t-.35-.363q-.125-.225-.137-.488t.137-.512l9.25-16q.15-.25.388-.375T12 3q.25 0 .488.125t.387.375l9.25 16q.15.25.138.513t-.138.487q-.125.225-.35.363t-.5.137zm1.725-2h15.1L12 6zM12 18q.425 0 .713-.288T13 17q0-.425-.288-.712T12 16q-.425 0-.712.288T11 17q0 .425.288.713T12 18m0-3q.425 0 .713-.288T13 14v-3q0-.425-.288-.712T12 10q-.425 0-.712.288T11 11v3q0 .425.288.713T12 15m0-2.5"%2F%3E%3C%2Fsvg%3E');
220+
}
221+
222+
.mdbook-alerts-caution {
223+
--mdbook-alerts-color: rgb(207, 34, 46);
224+
/* https://icon-sets.iconify.design/material-symbols/brightness-alert-outline-rounded/ */
225+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 17q.425 0 .713-.288T13 16q0-.425-.288-.712T12 15q-.425 0-.712.288T11 16q0 .425.288.713T12 17m0-4q.425 0 .713-.288T13 12V8q0-.425-.288-.712T12 7q-.425 0-.712.288T11 8v4q0 .425.288.713T12 13m-3.35 7H6q-.825 0-1.412-.587T4 18v-2.65L2.075 13.4q-.275-.3-.425-.662T1.5 12q0-.375.15-.737t.425-.663L4 8.65V6q0-.825.588-1.412T6 4h2.65l1.95-1.925q.3-.275.663-.425T12 1.5q.375 0 .738.15t.662.425L15.35 4H18q.825 0 1.413.588T20 6v2.65l1.925 1.95q.275.3.425.663t.15.737q0 .375-.15.738t-.425.662L20 15.35V18q0 .825-.587 1.413T18 20h-2.65l-1.95 1.925q-.3.275-.662.425T12 22.5q-.375 0-.737-.15t-.663-.425zm.85-2l2.5 2.5l2.5-2.5H18v-3.5l2.5-2.5L18 9.5V6h-3.5L12 3.5L9.5 6H6v3.5L3.5 12L6 14.5V18zm2.5-6"%2F%3E%3C%2Fsvg%3E');
226+
}
227+
228+
</style>
229+
<h1 id="getting-started"><a class="header" href="#getting-started">Getting Started</a></h1>
163230
<h2 id="dev-environment"><a class="header" href="#dev-environment">Dev environment</a></h2>
164231
<p>For development, we recommend <a href="https://code.visualstudio.com/">visual studio code</a> (or <a href="https://vscodium.com/">alternative</a>) along with the <a href="https://marketplace.visualstudio.com/items?itemName=sumneko.lua">lua extension</a>.</p>
165232
<p>After your setup is complete, you will want to obtain a prebuilt binary of the runtime from the <a href="https://github.com/ArkForgeLabs/Astra/releases">releases page</a>. Alternatively you can get it with <code>wget</code> as well. For example for the latest version with LuaJIT VM:</p>
@@ -212,22 +279,6 @@ <h2 id="interal-dev-environment"><a class="header" href="#interal-dev-environmen
212279

213280
</div>
214281

215-
<!-- Livereload script (if served using the cli tool) -->
216-
<script>
217-
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
218-
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
219-
const socket = new WebSocket(wsAddress);
220-
socket.onmessage = function (event) {
221-
if (event.data === "reload") {
222-
socket.close();
223-
location.reload();
224-
}
225-
};
226-
227-
window.onbeforeunload = function() {
228-
socket.close();
229-
}
230-
</script>
231282

232283

233284

docs/docs/latest/index.html

Lines changed: 68 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,74 @@ <h1 class="menu-title">ArkForge Astra</h1>
159159

160160
<div id="content" class="content">
161161
<main>
162-
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
162+
<style>
163+
.mdbook-alerts {
164+
padding: 8px 16px;
165+
margin-bottom: 16px;
166+
border-left: 0.25em solid var(--mdbook-alerts-color);
167+
}
168+
169+
.mdbook-alerts > *:first-child {
170+
margin-top: 0;
171+
}
172+
173+
.mdbook-alerts > *:last-child {
174+
margin-bottom: 0;
175+
}
176+
177+
.mdbook-alerts-title {
178+
display: flex;
179+
font-weight: 600;
180+
align-items: center;
181+
line-height: 1;
182+
color: var(--mdbook-alerts-color);
183+
text-transform: capitalize;
184+
}
185+
186+
.mdbook-alerts-icon {
187+
display: inline-block;
188+
width: 1em;
189+
height: 1em;
190+
margin-right: 0.2em;
191+
background-color: currentColor;
192+
-webkit-mask: no-repeat center / 100%;
193+
mask: no-repeat center / 100%;
194+
-webkit-mask-image: var(--mdbook-alerts-icon);
195+
mask-image: var(--mdbook-alerts-icon);
196+
}
197+
198+
.mdbook-alerts-note {
199+
--mdbook-alerts-color: rgb(9, 105, 218);
200+
/* https://icon-sets.iconify.design/material-symbols/info-outline-rounded/ */
201+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 17q.425 0 .713-.288T13 16v-4q0-.425-.288-.712T12 11q-.425 0-.712.288T11 12v4q0 .425.288.713T12 17m0-8q.425 0 .713-.288T13 8q0-.425-.288-.712T12 7q-.425 0-.712.288T11 8q0 .425.288.713T12 9m0 13q-2.075 0-3.9-.788t-3.175-2.137q-1.35-1.35-2.137-3.175T2 12q0-2.075.788-3.9t2.137-3.175q1.35-1.35 3.175-2.137T12 2q2.075 0 3.9.788t3.175 2.137q1.35 1.35 2.138 3.175T22 12q0 2.075-.788 3.9t-2.137 3.175q-1.35 1.35-3.175 2.138T12 22m0-2q3.35 0 5.675-2.325T20 12q0-3.35-2.325-5.675T12 4Q8.65 4 6.325 6.325T4 12q0 3.35 2.325 5.675T12 20m0-8"%2F%3E%3C%2Fsvg%3E');
202+
}
203+
204+
.mdbook-alerts-tip {
205+
--mdbook-alerts-color: rgb(26, 127, 55);
206+
/* https://icon-sets.iconify.design/material-symbols/lightbulb-outline-rounded/ */
207+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 22q-.825 0-1.412-.587T10 20h4q0 .825-.587 1.413T12 22m-3-3q-.425 0-.712-.288T8 18q0-.425.288-.712T9 17h6q.425 0 .713.288T16 18q0 .425-.288.713T15 19zm-.75-3q-1.725-1.025-2.738-2.75T4.5 9.5q0-3.125 2.188-5.312T12 2q3.125 0 5.313 2.188T19.5 9.5q0 2.025-1.012 3.75T15.75 16zm.6-2h6.3q1.125-.8 1.738-1.975T17.5 9.5q0-2.3-1.6-3.9T12 4Q9.7 4 8.1 5.6T6.5 9.5q0 1.35.613 2.525T8.85 14M12 14"%2F%3E%3C%2Fsvg%3E');
208+
}
209+
210+
.mdbook-alerts-important {
211+
--mdbook-alerts-color: rgb(130, 80, 223);
212+
/* https://icon-sets.iconify.design/material-symbols/chat-info-outline-rounded/ */
213+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 7q.425 0 .713-.288T13 6q0-.425-.288-.712T12 5q-.425 0-.712.288T11 6q0 .425.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9q-.425 0-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18zm-.85-2H20V4H4v13.125zM4 16V4z"%2F%3E%3C%2Fsvg%3E');
214+
}
215+
216+
.mdbook-alerts-warning {
217+
--mdbook-alerts-color: rgb(154, 103, 0);
218+
/* https://icon-sets.iconify.design/material-symbols/warning-outline-rounded/ */
219+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M2.725 21q-.275 0-.5-.137t-.35-.363q-.125-.225-.137-.488t.137-.512l9.25-16q.15-.25.388-.375T12 3q.25 0 .488.125t.387.375l9.25 16q.15.25.138.513t-.138.487q-.125.225-.35.363t-.5.137zm1.725-2h15.1L12 6zM12 18q.425 0 .713-.288T13 17q0-.425-.288-.712T12 16q-.425 0-.712.288T11 17q0 .425.288.713T12 18m0-3q.425 0 .713-.288T13 14v-3q0-.425-.288-.712T12 10q-.425 0-.712.288T11 11v3q0 .425.288.713T12 15m0-2.5"%2F%3E%3C%2Fsvg%3E');
220+
}
221+
222+
.mdbook-alerts-caution {
223+
--mdbook-alerts-color: rgb(207, 34, 46);
224+
/* https://icon-sets.iconify.design/material-symbols/brightness-alert-outline-rounded/ */
225+
--mdbook-alerts-icon: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 17q.425 0 .713-.288T13 16q0-.425-.288-.712T12 15q-.425 0-.712.288T11 16q0 .425.288.713T12 17m0-4q.425 0 .713-.288T13 12V8q0-.425-.288-.712T12 7q-.425 0-.712.288T11 8v4q0 .425.288.713T12 13m-3.35 7H6q-.825 0-1.412-.587T4 18v-2.65L2.075 13.4q-.275-.3-.425-.662T1.5 12q0-.375.15-.737t.425-.663L4 8.65V6q0-.825.588-1.412T6 4h2.65l1.95-1.925q.3-.275.663-.425T12 1.5q.375 0 .738.15t.662.425L15.35 4H18q.825 0 1.413.588T20 6v2.65l1.925 1.95q.275.3.425.663t.15.737q0 .375-.15.738t-.425.662L20 15.35V18q0 .825-.587 1.413T18 20h-2.65l-1.95 1.925q-.3.275-.662.425T12 22.5q-.375 0-.737-.15t-.663-.425zm.85-2l2.5 2.5l2.5-2.5H18v-3.5l2.5-2.5L18 9.5V6h-3.5L12 3.5L9.5 6H6v3.5L3.5 12L6 14.5V18zm2.5-6"%2F%3E%3C%2Fsvg%3E');
226+
}
227+
228+
</style>
229+
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
163230
<h2 id="versions"><a class="header" href="#versions">Versions</a></h2>
164231
<p>This documentation is on the <a href="https://astra.arkforge.net/docs/latest">latest</a> version of Astra and will store a version for every x.0.0 release. The other versions will be listed below here when available.</p>
165232
<h2 id="about"><a class="header" href="#about">About</a></h2>
@@ -193,22 +260,6 @@ <h2 id="philosophy"><a class="header" href="#philosophy">Philosophy</a></h2>
193260

194261
</div>
195262

196-
<!-- Livereload script (if served using the cli tool) -->
197-
<script>
198-
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
199-
const wsAddress = wsProtocol + "//" + location.host + "/" + "__livereload";
200-
const socket = new WebSocket(wsAddress);
201-
socket.onmessage = function (event) {
202-
if (event.data === "reload") {
203-
socket.close();
204-
location.reload();
205-
}
206-
};
207-
208-
window.onbeforeunload = function() {
209-
socket.close();
210-
}
211-
</script>
212263

213264

214265

0 commit comments

Comments
 (0)