Git Product home page Git Product logo

kaizen's Introduction

Kaizen

Crates.io Crates.io platform platform platform

Overview

This crate is a security-centric framework for development of Solana Programs using Rust and client-side applications using pure async Rust. The primary goal behind this project is to eliminate IDLs and contain the program and client-side application within the same Rust codebase, allowing program functionaity, if needed, to exist in the same Rust file as the client-side functionality.

This in-turn allows create of a single data processing layer that is able to process account data in-program as well as client-side.

The framework is then backed by native and in-browser async Rust transport layers that can fetch account data and access it client-side via functions interfacing with AccountInfo.

Example available here: https://github.com/workflow-rs/workflow-allocator-example

Features

  • Unified async Rust Web3 transport interface (uses native Rust Solana implementation when building native and Web3.js implementation when running under WASM32 browser environment)
  • Designed to provide unified environment where Solana Program functions can be used client-side (for example, a function using workflow-log::log_info!() will invoke printf!() on native, console.log() in browser and solana_program::log::sol_log() under BPF)
  • Unified Solana Instruction builder interface that uses Rust Builder Pattern and includes various framework-centric functionality
  • Macros for program function mappings, allowing invocation of program functions by function names in-client.
  • Segmented account data storage derived from Rust structure declarations, allowing each structure field to be accessed directly, and resized.
  • Container-based approach for account management with a simultaneous in-program and client-side container type registration.
  • Client-side container access and caching mechanisms (using async Rust transport api)
  • Solana Emulator (extremely simplified) provides the developer with the ability to run programs on native targets (OS) and in-browser (in WASM). This emulator supports a limited subset of account functionality such as account resizing, SOL balance tracking etc., and is intended for testing and prototyping program functionality in the native of in-browser environments.
  • Basic user identity data structures allowing multiple wallets to be bound to a single user identity.
  • Instant data structure for time tracking (uses Instance on native, Date::now() in WASM32 and Clock::get() in Solana)
  • Support for integration with multiple Solana Programs as well as interfacing with multiple programs from within a single application.
  • Helper functions for automated account creation and resizing.

kaizen's People

Contributors

aspect avatar surinder83singh avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.