7 releases

0.1.19 Nov 25, 2023
0.1.18 Nov 2, 2023
0.1.17 Oct 31, 2023

#153 in Multimedia

MIT/Apache

165KB
3K SLoC

Rust 3K SLoC // 0.1% comments JavaScript 403 SLoC // 0.1% comments

Agera SDK API

This crate provides the Agera SDK APIs for developing rich internet applications.


lib.rs:

The foundational APIs used to write Agera rich internet applications.

The Basics

Agera applications are created either through the Agera command line interface or an integrated development environment. Rust programs should include the following use item:

use agera::common::*;

Nodes

Agera uses a Node graph using the util::inheritance module. You can define your own classes that extend other Node classes.

Graphical Experience

The agera::display and agera::controls modules are used to display graphics and controls to the screen. Agera supports in-depth settings of display objects, such as registration point and filters and operations such as measurement of object bounds.

Working with Files

The agera::file module provides ways of operating on files, either by path or by reference. It abstracts away working with files that belong to the application.

use agera::file::*;

// A file path
let file = File::new("app://asset.svg");

// Synchronous operation
println!("{}", file.exists());

// Asynchronous operation
println!("{}", file.exists_async().await);

Working with Events

Event conditions are commonly expressed as EventEmitter objects, to which the programmer may attach listeners by using the .listener method.

// Registering listener
let listener = button.on_click().listener(|e| {
// Action
});

// Removing listener
listener.remove();

Dependencies

~6–19MB
~268K SLoC