docs: update readme
This commit is contained in:
91
README.md
91
README.md
@@ -1,2 +1,89 @@
|
|||||||
# via
|
# ⚡Via
|
||||||
Real-time, reactive, hypermedia-driven, SSE-powered powerhouse that makes your UIs alive with minimal code.
|
Pure Go reactive web framework.
|
||||||
|
|
||||||
|
### Why Via?
|
||||||
|
Somewhere along the way, the web became tangled in layers of JavaScript, build chains, and frameworks stacked on frameworks.
|
||||||
|
|
||||||
|
Via takes a radical stance:
|
||||||
|
|
||||||
|
No templates.
|
||||||
|
|
||||||
|
No JavaScript.
|
||||||
|
|
||||||
|
No transpilation.
|
||||||
|
|
||||||
|
No hydration.
|
||||||
|
|
||||||
|
No front-end fatigue.
|
||||||
|
|
||||||
|
Single SSE (Server Sent Events) connection.
|
||||||
|
|
||||||
|
Full reactivity in the browser.
|
||||||
|
|
||||||
|
Pure Go.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/go-via/via"
|
||||||
|
"github.com/go-via/via/h"
|
||||||
|
)
|
||||||
|
|
||||||
|
type CounterState struct{ Count int }
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
v := via.New()
|
||||||
|
v.Page("/", func(c *via.Context) {
|
||||||
|
|
||||||
|
s := CounterState{Count: 0}
|
||||||
|
|
||||||
|
step := c.Signal(1)
|
||||||
|
|
||||||
|
increment := c.Action(func() {
|
||||||
|
s.Count += step.Int()
|
||||||
|
c.Sync()
|
||||||
|
})
|
||||||
|
|
||||||
|
c.View(func() h.H {
|
||||||
|
return h.Div(
|
||||||
|
h.P(h.Textf("Count: %d", s.Count)),
|
||||||
|
h.Label(
|
||||||
|
h.Text("Update Step: "),
|
||||||
|
h.Input(h.Type("number"), step.Bind()),
|
||||||
|
),
|
||||||
|
h.Button(h.Text("Increment"), increment.OnClick()),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
v.Start(":3000")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️Via is in its infancy. Things will break often.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
### Contributing
|
||||||
|
Via is intentionally minimal — and so is contributing.
|
||||||
|
|
||||||
|
If you love Go, precision, and small, meaningful abstractions — Come along for the ride.
|
||||||
|
|
||||||
|
Fork, branch, build, break things.
|
||||||
|
|
||||||
|
Follow the loop: Via → Context → State/Signals → View.
|
||||||
|
|
||||||
|
Keep every line purposeful.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Credits
|
||||||
|
|
||||||
|
Via builds upon the work of these amazing projects:
|
||||||
|
|
||||||
|
- [Datastar](data-star.dev) - The hypermedia powerhouse powering Via's browser reactivity and real-time HTML and signal patches over a always-on SSE event stream.
|
||||||
|
- [Gomponents](maragu.dev/gomponents) - The awesome project that enables Via's Go-native HTML UI composition through the `via/h` package.
|
||||||
|
|||||||
Reference in New Issue
Block a user