This commit is contained in:
2026-01-31 21:59:05 +01:00
parent 74d37206b4
commit 636732fc9e
9 changed files with 44 additions and 11 deletions
+9 -4
View File
@@ -1,7 +1,12 @@
kleo-dev:
name: Leo
name: Klesti
title: Creator of OSUI
url: https://github.com/kleo-dev
image_url: https://github.com/kleo-dev.png
url: https://selimaj.dev
image_url: https://github.com/selimaj-dev.png
socials:
github: kleo-dev
github: selimaj-dev
instagram: selimaj.dev
x: selimajdev
linkedin: klesti-selimaj
portfolio: https://selimaj.dev
youtube: SelimajDev
+1
View File
@@ -1,6 +1,7 @@
---
title: OSUI v0.0.9 alpha, what's new and should you update
description: OSUI v0.0.9 is just on the edge of development, alpha is just the beginning.
date: 2025-06-30T22:19
slug: osui-0.0.9-alpha
authors:
- kleo-dev
+32
View File
@@ -0,0 +1,32 @@
---
title: OSUI v0.2.0 is here!
description: New codebase, new strucutre, new everything.
date: 2026-01-31 18:52
slug: osui-0.2.0
authors:
- kleo-dev
---
Wow, 2 years into this project, i was 14 years old when i started this project, aside from my first [Rust project](https://github.com/wyst-lang/wyst/tree/legacy) This was my second project and my most important for learning how rust actually works.
<!-- truncate -->
I'll be honest, i wasn't the best developer back then, but i've learned so much, and i'm excited for a new era, i want to get back into this project to thank it for placing me where i'm at.
Enough said though, let's get into the changes.
## Rewrite
This rewrite has been one of the best yet, while not fully frontend featured, the engine and structure matters a lot, this is a much more resilient architecture than any other OSUI structure.
## Performance
The performance is much better and it's more predictable, however i do not have a clue on why the spikes appear on those specific iterations.
## Scoping
Scoping allows for the separation of dynamic and static DOM, for a more flexible UI, this makes `for` loops and `if` statements work perfectly without any bugs.
![Scoping](https://private-user-images.githubusercontent.com/103524696/540255465-fe705306-260f-4443-b31f-17ecb9401ef8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njk4OTMxOTMsIm5iZiI6MTc2OTg5Mjg5MywicGF0aCI6Ii8xMDM1MjQ2OTYvNTQwMjU1NDY1LWZlNzA1MzA2LTI2MGYtNDQ0My1iMzFmLTE3ZWNiOTQwMWVmOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDEzMVQyMDU0NTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jM2FjY2ZmMjQzMmRhZGVhZjFjZmMxMjg2YzFlZTFkNzdhNGM4OTA2MWU2MWM3ZjliNDY1YzE3ZGFjMmRiMTQ1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.zuJ_ZkgzhP0Ww2Z3-zu12fQPQVRxl_kr5VQwHbDD5sQ)
## What's missing
I've only worked on this version for about 2-3 weeks, so it's not fully featured, here are the features that will be added on future versions:
- Positioning and sizing API, Position::Center, etc.
- Styling API, fg: #fff, etc.
- RSX string dependencies (or ref cloning) (`%state "{state}"`).
+1
View File
@@ -1,6 +1,7 @@
---
title: Releasing OSUI v0.0.9
description: A new upcoming version of OSUI will come out. Let's re-write it.
date: 2025-01-19T23:16
slug: osui-0.0.9-rewrite
authors:
- kleo-dev
-1
View File
@@ -1,6 +1,5 @@
---
sidebar_position: 2
title: Internals: Macros
---
# Internals: Macros
@@ -73,7 +73,7 @@ pub fn App(cx: &Arc<Context>) -> View {
* **Parameter Names**: The names of your function parameters (e.g., `name`, `age`) become the names of the props you use when instantiating the component in `rsx!`.
* **Reference Types**: Props are typically passed as references (e.g., `&str`, `&u8`). The `#[component]` macro automatically "strips" the reference when generating the internal component struct, storing the owned type. This means you don't need to manually clone values unless you intend to move them into a closure or `State`.
* **`children` Prop**: As seen in the [previous guide](../intro/03-example-basic-component.md), any content nested inside a component's `rsx!` invocation is implicitly passed as a `children: &Rsx` prop. This allows for flexible content composition.
* **`children` Prop**: As seen in the [previous guide](/docs/intro/03-example-basic-component.md), any content nested inside a component's `rsx!` invocation is implicitly passed as a `children: &Rsx` prop. This allows for flexible content composition.
### Example: Component with `children` and custom props
@@ -151,5 +151,3 @@ The `MyCustomLayout` component above demonstrates a basic two-column layout. You
* **Composition**: Layout components can themselves be children of other layout components, allowing you to build complex nested structures.
While implementing a full layout system like CSS Flexbox is beyond the scope of OSUI's core, these primitives empower you to craft highly customized and visually rich terminal interfaces by manually managing space and component placement.
**Next:** Explore the detailed [API Reference](../reference/00-crate-structure.md) for all OSUI modules and types.
@@ -71,5 +71,3 @@ graph TD
* **Extensibility**: The `Engine` trait allows for different rendering backends (e.g., to a file, to a graphical window, or for benchmarking) without modifying component logic.
Understanding this pipeline helps in debugging rendering issues, optimizing performance, and building custom rendering logic within your OSUI applications.
**Next:** Explore advanced topics like [Performance Benchmarking](../advanced/00-performance-benchmarking.md).
@@ -1,6 +1,5 @@
---
sidebar_position: 2
title: Internals: Macros
---
# Internals: Macros