6 releases

new 0.0.6 Apr 8, 2024
0.0.5 Aug 6, 2023
0.0.4 Jul 30, 2023

#53 in #u64

50 downloads per month
Used in rsciter

Apache-2.0

16KB
394 lines

Description

Work in Progress License

This is unofficial Rust bindings for Sciter

Disclaimer

This is a work in progress library and is not yet ready for production use.

Differencies from rust-sciter

  • Never panics

  • Uses bindgen instead of hand-written code.

  • Utilizes Sciter's own functions for windows/application management.

  • The primary goal is not to provide a complete Sciter API, but to simplify the interaction between the backend (in Rust) and the frontend (Sciter.JS UI). For example, exporting functions is as easy as:

    #[rsciter::xmod] // mark the module, that's it!
    mod NativeModule {
        pub fn append_log(id: u64, message: &str) { ... }
        pub fn user_name() -> String { ... }
    }
    
    struct StatefullApi {
        state: u64,
    }
    
    #[rsciter::xmod] // or struct impl block
    impl StatefullApi {
        pub fn sum(&self, a: u64, b: u64) -> u64 {
            a + b + self.state
        }
    
        pub fn update(&mut self, a: u64) {
            self.state = a;
        }
    
        pub fn state(&self) -> u64 {
            self.state
        }
    }
    

    For details, see this samples:

Dependencies

~0.4–0.9MB
~20K SLoC