diff options
| author | 2019-11-19 11:39:49 +0100 | |
|---|---|---|
| committer | 2019-11-19 11:39:49 +0100 | |
| commit | fdc99e5bf619daf46b9f3508827a79e329b0da9b (patch) | |
| tree | 690c811bdacefb58b45c99c30334968ed4970b0d /README.md | |
| parent | 5adefdf6613bfe0738b573eab1d280fa041f5417 (diff) | |
| download | iced-fdc99e5bf619daf46b9f3508827a79e329b0da9b.tar.gz iced-fdc99e5bf619daf46b9f3508827a79e329b0da9b.tar.bz2 iced-fdc99e5bf619daf46b9f3508827a79e329b0da9b.zip | |
Update `README` and `ROADMAP` and add `ECOSYSTEM`
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 100 | 
1 files changed, 65 insertions, 35 deletions
| @@ -3,8 +3,9 @@  [][documentation]  [](https://crates.io/crates/iced)  [](https://github.com/hecrj/iced/blob/master/LICENSE) +[](https://iced.zulipchat.com) -A renderer-agnostic GUI library for Rust focused on simplicity and type-safety. +A cross-platform GUI library for Rust focused on simplicity and type-safety.  Inspired by [Elm].  [![Tour - Iced][gui_gif]][gui_gfycat] @@ -17,15 +18,31 @@ Inspired by [Elm].  [coffee_gui_gfycat]: https://gfycat.com/gloomyweakhammerheadshark  ## Features -  * Simple, easy-to-use, renderer-agnostic API -  * Responsive, flexbox-based layouting +  * Simple, easy-to-use, batteries-included API    * Type-safe, reactive programming model -  * Built-in widgets -  * Custom widget support - -__Iced is in a experimental stage.__ [Take a look at the roadmap], -[check out the issues], and [feel free to contribute!]. - +  * Cross-platform support (Windows, macOS, Linux, and the Web) +  * Responsive layout +  * Built-in widgets (including [text inputs], [scrollables], and more!) +  * Custom widget support (create your own!) +  * [Debug overlay with performance metrics] +  * First-class support for async actions (use futures!) +  * [Modular ecosystem] split into reusable parts: +    * A [default renderer] supporting Vulkan, Metal, DX11, and DX12 +    * A [renderer-agnostic native runtime] enabling integration with existing systems +    * A [web runtime] leveraging the DOM + +__Iced is currently experimental software.__ [Take a look at the roadmap], +[check out the issues], and [feel free to contribute!] + +[text inputs]: https://gfycat.com/alertcalmcrow-rust-gui +[scrollables]: https://gfycat.com/perkybaggybaboon-rust-gui +[Debug overlay with performance metrics]: https://gfycat.com/artisticdiligenthorseshoebat-rust-gui +[Modular ecosystem]: https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md +[renderer-agnostic native runtime]: https://github.com/hecrj/iced/tree/master/native +[`wgpu`]: https://github.com/gfx-rs/wgpu-rs +[Default renderer]: https://github.com/hecrj/iced/tree/master/wgpu +[`dodrio`]: https://github.com/fitzgen/dodrio +[web runtime]: https://github.com/hecrj/iced/tree/master/web  [Take a look at the roadmap]: https://github.com/hecrj/iced/blob/master/ROADMAP.md  [check out the issues]: https://github.com/hecrj/iced/issues  [feel free to contribute!]: #contributing--feedback @@ -139,7 +156,7 @@ to:    1. Take the result of our __view logic__ and layout its widgets.    1. Process events from our system and produce __messages__ for our       __update logic__. -  1. Draw the resulting user interface using our chosen __renderer__. +  1. Draw the resulting user interface.  Browse the [documentation] and the [examples] to learn more! @@ -147,40 +164,51 @@ Browse the [documentation] and the [examples] to learn more!  Iced was originally born as an attempt at bringing the simplicity of [Elm] and  [The Elm Architecture] into [Coffee], a 2D game engine I am working on. -The core of the library was implemented during May in [this pull request], using -[`stretch`] for flexbox-based layouting. It was later released as the main -feature of [Coffee 0.3.0]. +The core of the library was implemented during May in [this pull request]. +[The first alpha version] was eventually released as +[a renderer-agnostic GUI library]. The library did not provide a renderer and +implemented the current [tour example] on top of [`ggez`], a game library. -After release, different folks suggested me to split the new [`ui` module] into -its own standalone crate, as it could potentially benefit other engines and -applications. I thought it was a great idea, and after a bit of work... Iced is -here! +Since then, the focus has shifted towards providing a batteries-included, +end-user-oriented GUI library, while keeping [the ecosystem] modular. -Iced consists of different crates which offer different layers of abstractions -for our users. This modular architecture helps us keep implementation details -hidden and decoupled, which should allow us to rewrite or change strategies in -the future. +Currently, Iced is a cross-platform GUI library built on top of smaller crates: - +  - [`iced_core`], a bunch of basic types that can be reused in different runtimes. +  - [`iced_native`], a renderer-agnostic native runtime implementing widget +    logic and a layout engine inspired by [`druid`]. +  - [`iced_web`], an experimental web runtime that targets the DOM thanks to +    [`dodrio`]. +  - [`iced_wgpu`], a renderer leveraging [`wgpu`], [`wgpu_glyph`], and +    [`font-kit`]. +  - [`iced_winit`], a windowing shell on top of [`winit`]. -Read [the roadmap] if you want to learn more! +[](https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md)  [this pull request]: https://github.com/hecrj/coffee/pull/35 -[`stretch`]: https://github.com/vislyhq/stretch -[Coffee 0.3.0]: https://github.com/hecrj/coffee/releases/tag/0.3.0 -[`ui` module]: https://docs.rs/coffee/0.3.2/coffee/ui/index.html -[the roadmap]: https://github.com/hecrj/iced/blob/master/ROADMAP.md +[The first alpha version]: https://github.com/hecrj/iced/tree/0.1.0-alpha +[a renderer-agnostic GUI library]: https://www.reddit.com/r/rust/comments/czzjnv/iced_a_rendereragnostic_gui_library_focused_on/ +[tour example]: https://github.com/hecrj/iced/blob/master/examples/tour.rs +[`ggez`]: https://github.com/ggez/ggez +[the ecosystem]: https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md +[`iced_core`]: https://github.com/hecrj/iced/tree/master/core +[`iced_native`]: https://github.com/hecrj/iced/tree/master/native +[`iced_web`]: https://github.com/hecrj/iced/tree/master/web +[`iced_wgpu`]: https://github.com/hecrj/iced/tree/master/wgpu +[`iced_winit`]: https://github.com/hecrj/iced/tree/master/winit +[`druid`]: https://github.com/xi-editor/druid +[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph +[`font-kit`]: https://github.com/servo/font-kit +[`winit`]: https://github.com/rust-windowing/winit  ## Contributing / Feedback -If you want to contribute, you are more than welcome to be a part of the -project! Check out [the roadmap] and [the current issues] if you want to find -something to work on. Try to share you thoughts first! Feel free to open a new -issue if you want to discuss new ideas. +Contributions are greatly appreciated! If you want to contribute, please +read our [contributing guidelines] for more details. -Any kind of feedback is welcome! You can open an issue or, if you want to talk, -you can find me (and a bunch of awesome folks) over the `#games-and-graphics` -and `#gui-and-ui` channels in the [Rust Community Discord]. I go by -`@lone_scientist` there. +Feedback is also welcome! You can open an issue or, if you want to talk, +come chat to our [Zulip server]. Moreover, you can find me (and a bunch of +awesome folks) over the `#games-and-graphics` and `#gui-and-ui` channels in +the [Rust Community Discord]. I go by `lone_scientist#9554` there.  [documentation]: https://docs.rs/iced  [examples]: https://github.com/hecrj/iced/tree/master/examples @@ -188,4 +216,6 @@ and `#gui-and-ui` channels in the [Rust Community Discord]. I go by  [Elm]: https://elm-lang.org/  [The Elm Architecture]: https://guide.elm-lang.org/architecture/  [the current issues]: https://github.com/hecrj/iced/issues +[contributing guidelines]: https://github.com/hecrj/iced/blob/master/CONTRIBUTING.md +[Zulip server]: https://iced.zulipchat.com/  [Rust Community Discord]: https://bit.ly/rust-community | 
