Giter Site home page Giter Site logo

zmilan / perseus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from framesurge/perseus

0.0 1.0 0.0 36.51 MB

A high-level web development framework for Rust with full support for server-side rendering and static generation.

Home Page: https://arctic-hen7.github.io/perseus/en-US

License: MIT License

Rust 96.43% Shell 0.19% HTML 0.09% CSS 1.45% JavaScript 0.25% Fluent 1.60%

perseus's Introduction

Perseus

Book API Docs Crate Page Top Language Discord Chat

Perseus is a blazingly fast frontend web development framework built in Rust with support for major rendering strategies, reactivity without a virtual DOM, and extreme customizability. It wraps the lower-level capabilities of Sycamore!

  • ๐Ÿ“• Supports static generation (serving only static resources)
  • ๐Ÿ—ผ Supports server-side rendering (serving dynamic resources)
  • ๐Ÿ”ง Supports revalidation after time and/or with custom logic (updating rendered pages)
  • ๐Ÿ› ๏ธ Supports incremental regeneration (build on demand)
  • ๐Ÿญ Open build matrix (use any rendering strategy with anything else)
  • ๐Ÿ–ฅ๏ธ CLI harness that lets you build apps with ease and confidence
  • ๐ŸŒ Full i18n support out-of-the-box with Fluent

Usage

Here's a taste of Perseus (see the tiny example for more):

use perseus::{define_app, ErrorPages, Template};
use sycamore::template;
define_app! {
    templates: [
        Template::<G>::new("index").template(|_| {
            template! {
                p { "Hello World!" }
            }
        })
    ],
    error_pages: ErrorPages::new(|url, status, err, _| {
        template! {
            p { (format!("An error with HTTP code {} occurred at '{}': '{}'.", status, url, err)) }
        }
    })
}

Check out the book to learn how to turn that into your next app!

Aim

Support every major rendering strategy and provide developers the ability to efficiently create super-fast apps with Rust and a fantastic developer experience!

Motivation

There is a sore lack of Rust frameworks for frontend development that support more than just SPAs and client-side rendering, and so Perseus was born. We need something like NextJS for Wasm.

Roadmap

Pre-stable

These tasks still need to be done before Perseus can be pushed to v1.0.0.

  • Create a custom CLI as a harness for apps without ridiculous amounts of configuration needed
  • Support i18n out of the box
  • Implement custom router
  • Allow direct modification of the document head
  • Improve SEO and initial load performance
  • Support custom template hierarchies
  • Pre-built integrations
    • Actix Web
    • Warp
    • AWS Lambda

Beyond

These tasks will be done after Perseus is stable.

  • Integrations for other platforms

Contributing

We appreciate all kinds of contributions, check out our contributing guidelines for more information! Also, please be sure to follow our code of conduct.

You can also chat about Perseus on our channel on Sycamore's Discord server.

License

See LICENSE.

perseus's People

Contributors

arctic-hen7 avatar lukechu10 avatar dolphingarlic avatar imbolc avatar afidegnum avatar njittam avatar phaleth 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.