MCPcopy Index your code
hub / github.com/DJankauskas/avalanche

github.com/DJankauskas/avalanche @0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.0 ↗ · + Follow
277 symbols 561 edges 24 files 60 documented · 22% updated 3y ago★ 37
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Avalanche

Book | Docs | Examples | Roadmap

Avalanche is a performant library for building declarative, performant UIs. It analyzes functional component definitions at compile time to generate efficient and precise app updates. It is bundled with avalanche-web, which provides facilities and components for building WebAssembly web apps. This library is in early stages of development, and should not yet be used in production.

This crate does not respect semver for 0.1.x.

How it works

Functions marked with #[component] define UI declaratively by returning other components. Component parameters and state are augmented by tracking, a system where avalanche tracks whether variables have been updated, only updating the UI for changed data. This allows for higher performance while keeping code ergonomic.

Getting started

To learn the library, we highly recommend you check out the avalanche book, which gives a primer on creating and building a web app using avalanche and avalanche web. The todomvc example is a great example app for getting a feel for basic avalanche idioms.

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.

Extension points exported contracts — how you extend this code

Component (Interface)
The trait representing a component. Users should not implement this trait manually but instead use the `component` attr [5 …
avalanche/src/lib.rs
AssociatedNativeElement (Interface)
(no doc)
avalanche-web/src/components.rs
Renderer (Interface)
The interface through which `avalanche` updates the native UI as described by changes to components. This allows `avalan [2 …
avalanche/src/renderer.rs
Scheduler (Interface)
An interface to schedule a function on a platform's ui thread. [2 implementers]
avalanche/src/renderer.rs
TrackedVecIndex (Interface)
Emulates the role of [std::slice::SliceIndex]. [1 implementers]
avalanche/src/tracked.rs
DynComponent (Interface)
(no doc) [1 implementers]
avalanche/src/lib.rs

Core symbols most depended-on inside this repo

expr
called by 59
avalanche-macro/src/transform.rs
clone
called by 41
avalanche/src/tree.rs
len
called by 32
avalanche/src/tree.rs
iter
called by 32
avalanche/src/tree.rs
extend
called by 31
avalanche-macro/src/transform.rs
push
called by 26
avalanche/src/tree.rs
get_mut
called by 16
avalanche/src/vdom.rs
iter_mut
called by 15
avalanche/src/tree.rs

Shape

Method 147
Function 60
Class 50
Enum 13
Interface 7

Languages

Rust98%
TypeScript2%

Modules by API surface

avalanche-macro-test/src/tests.rs36 symbols
avalanche/src/tracked.rs32 symbols
avalanche-macro/src/transform.rs30 symbols
avalanche-web/src/components.rs28 symbols
avalanche-web/src/lib.rs25 symbols
avalanche/src/tree.rs24 symbols
avalanche/src/vdom.rs20 symbols
avalanche/src/lib.rs16 symbols
avalanche/src/hooks.rs16 symbols
avalanche-macro/src/macro_expr.rs11 symbols
avalanche/src/shared.rs8 symbols
avalanche/src/renderer.rs7 symbols

For agents

$ claude mcp add avalanche \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact