dioxus/notes/CHANGELOG.md

139 lines
4.1 KiB
Markdown
Raw Normal View History

2021-03-29 16:31:47 +00:00
# Dioxus v0.1.0
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
Welcome to the first iteration of the Dioxus Virtual DOM! This release brings support for:
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- Web via WASM
- Desktop via webview integration
2021-05-16 06:06:02 +00:00
- Server-rendering with custom ToString implementation
2021-03-29 16:31:47 +00:00
- State management
- Build CLI
2021-05-26 15:22:44 +00:00
- Foundational hooks
- Context API
- Basic suspense
- Controlled components
2021-05-31 22:55:56 +00:00
---
2021-03-29 16:31:47 +00:00
## Project: Initial VDOM support (TBD)
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
> Get the initial VDom + Event System + Patching + Diffing + Component framework up and running
> Get a demo working using just the web
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [x] (Core) Migrate virtual node into new VNode type
- [x] (Core) Arena allocate VNodes
- [x] (Core) Allow VNodes to borrow arena contents
- [x] (Core) Introduce the VDOM and patch API for 3rd party renderers
- [x] (Core) Implement lifecycle
2021-05-31 22:55:56 +00:00
- [x] (Core) Implement an event system
2021-03-29 16:31:47 +00:00
- [x] (Core) Implement child nodes, scope creation
2021-05-26 05:40:30 +00:00
- [x] (Core) Implement dirty tagging and compression
2021-05-31 22:55:56 +00:00
## Project: QOL
2021-03-29 16:31:47 +00:00
> Make it easier to write components
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [x] (Macro) Tweak event syntax to not be dependent on wasm32 target (just return regular closures which get boxed/alloced)
2021-05-31 22:55:56 +00:00
- [x] (Macro) Tweak component syntax to accept a new custom element
2021-05-15 16:03:08 +00:00
- [ ] (Macro) Allow components to specify their props as function args
2021-02-21 02:59:16 +00:00
2021-03-29 16:31:47 +00:00
## Project: Hooks + Context + Subscriptions (TBD)
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
> Implement the foundations for state management
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [x] Implement context object
- [x] Implement use_state (rewrite to use the use_reducer api like rei)
- [x] Implement use_ref
- [x] Implement use_context (only the API, not the state management solution)
- [ ] Implement use_reducer (WIP)
2021-02-21 02:59:16 +00:00
2021-03-29 16:31:47 +00:00
## Project: String Render (TBD)
2021-05-31 22:55:56 +00:00
> Implement a light-weight string renderer with basic caching
2021-03-29 16:31:47 +00:00
- [x] (Macro) Make VText nodes automatically capture and format IE allow "Text is {blah}"
- [x] (SSR) Implement stateful 3rd party string renderer
2021-01-16 04:25:29 +00:00
2021-03-29 16:31:47 +00:00
## Project: Web_sys renderer (TBD)
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [x] WebSys edit interpreter
- [x] Event system using async channels
- [ ] Implement conversion of all event types into synthetic events
2021-01-16 04:25:29 +00:00
2021-03-29 16:31:47 +00:00
## Project: Web-View 🤲 🍨
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
> Proof of concept: stream render edits from server to client
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [x] Prove that the diffing and patching framework can support patch streaming
2021-01-16 04:25:29 +00:00
2021-03-29 16:31:47 +00:00
## Project: Examples
2021-05-31 22:55:56 +00:00
> Get _all_ the examples
2021-01-16 04:25:29 +00:00
- [ ] (Examples) Tide example with templating
2021-05-31 22:55:56 +00:00
## Project: State management
2021-01-16 04:25:29 +00:00
2021-05-31 22:55:56 +00:00
> Get some global state management installed with the hooks + context API
2021-01-16 04:25:29 +00:00
2021-03-29 16:31:47 +00:00
## Project: Concurrency (TBD)
2021-01-16 04:25:29 +00:00
2021-05-31 22:55:56 +00:00
> Ensure the concurrency model works well, play with lifetimes to check if it can be multithreaded + halted
> ?
2021-03-29 16:31:47 +00:00
## Project: Mobile exploration
2021-03-29 16:31:47 +00:00
## Project: Live-View 🤲 🍨
2021-02-08 00:14:04 +00:00
2021-05-31 22:55:56 +00:00
> Combine the server and client into a single file :)
2021-02-08 00:14:04 +00:00
2021-03-29 16:31:47 +00:00
## Project: Sanitization (TBD)
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
> Improve code health
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
- [ ] (Macro) Clippy sanity for html macro
- [ ] (Macro) Error sanitization
## Outstanding todos:
2021-05-31 22:55:56 +00:00
2021-03-29 16:31:47 +00:00
> anything missed so far
2021-05-31 22:55:56 +00:00
2021-04-02 01:44:18 +00:00
- [x] keys on components
- [x] Allow paths for components
- [x] todo mvc
2021-05-16 06:55:16 +00:00
- [x] Tweak macro parsing for better errors
- [x] dirty tagging, compression
- [x] code health
2021-05-31 22:55:56 +00:00
- [x] static str slice optimization
- [x] name spacing so svg works
- [x] A handful of svg elements are automatically namespaced
- [ ] Allow hierarchical namespacing (all children share a parent's namespace) - TBD in macro impl
2021-05-26 15:22:44 +00:00
- [ ] fix keys on elements
- [ ] controlled components (kinda tuff since we need all these different platforms)
- [ ] Their own crate
- [ ] Re-exported through the `dioxus` crate (not core)
- [ ] Hooks
- [ ] Re-exported through the `dioxus` crate (not essential to core virtualdom)
2021-06-17 22:00:32 +00:00
- [x] fragments
- [x] pass-thru components
2021-05-26 15:22:44 +00:00
## Less-essential todos
2021-05-31 22:55:56 +00:00
- [ ] HTML doesn't require strings between elements (copy-paste from internet)
2021-05-16 06:06:02 +00:00
- [ ] Beef up the dioxus CLI tool to report build progress
- [ ] Extract arena logic out for better safety guarantees
- [ ] Extract BumpFrame logic out for better safety guarantees
2021-05-15 16:03:08 +00:00
- [ ] make SSR follow HTML spec
- [ ] MIRI tests
2021-04-02 01:44:18 +00:00
- [ ] all synthetic events filled out
2021-05-15 16:03:08 +00:00
- [ ] double check event targets and stuff
2021-04-02 01:44:18 +00:00
- [ ] Documentation overhaul
- [ ] Website
2021-05-15 16:03:08 +00:00
lower priority features
2021-05-31 22:55:56 +00:00
- [x] Attributes on elements should implement format_args instead of string fmt
2021-04-01 04:01:42 +00:00
- [ ] node refs (postpone for future release?)
- [ ] styling built-in (future release?)
- [ ] key handler?
2021-05-16 06:06:02 +00:00
- [ ] FC macro?