Zng is a cross-platform GUI framework, it provides ready made highly customizable widgets, responsive layout,
live data binding, easy localization, automatic focus navigation and accessibility, async and multi-threaded tasks, robust
multi-process architecture and more.
Zng is pronounced “zing”, or as an initialism: ZNG (Z Nesting Graphics).
Usage
First add zng to your Cargo.toml, or call cargo add zng -F view_prebuilt:
[dependencies]
zng = { version = "0.4.0", features = ["view_prebuilt"] }
The zng crate is the only dependency you need to create apps, it re-exports the primary API of the other
crates in well organized and documented modules.
The other crates provide the full API that you might need to implement more advanced features, for example, a
custom property that modifies the behavior of a widget might need to reference the widget’s internal state,
this internal API will only be available in the widget’s crate.
Cargo Features
The Cargo features of each crate are documented in the README file for that crate. See ./crates/zng for the Cargo features of the main crate.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
zng
Zng is a cross-platform GUI framework, it provides ready made highly customizable widgets, responsive layout, live data binding, easy localization, automatic focus navigation and accessibility, async and multi-threaded tasks, robust multi-process architecture and more.
Zng is pronounced “zing”, or as an initialism: ZNG (Z Nesting Graphics).
Usage
First add
zng
to yourCargo.toml
, or callcargo add zng -F view_prebuilt
:Then create your first window:
See the
documentation
for more details.Crates
The
zng
crate is the only dependency you need to create apps, it re-exports the primary API of the other crates in well organized and documented modules.The other crates provide the full API that you might need to implement more advanced features, for example, a custom property that modifies the behavior of a widget might need to reference the widget’s internal state, this internal API will only be available in the widget’s crate.
Cargo Features
The Cargo features of each crate are documented in the README file for that crate. See
./crates/zng
for the Cargo features of the main crate.Requirements
On Windows:
"view"
and"view_software"
feature:CC
andCXX
must be set to “clang-cl”.on Linux:
Packages needed to build:
pkg-config
libfontconfig1-dev
Packages needed to build with
"http"
feature:libssl-dev
Packages needed to build with
"view_prebuilt"
feature:curl
Examples
Clone this repository and call
cargo do run <example>
to run an example.See the
./examples
README file for a list of examples with description and screenshots.License
Licensed under either of
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.