Home

Awesome

<div align="center"> <img height="128px" width="128px" src="https://raw.githubusercontent.com/HapticX/happyx/master/examples/website/src/happyx/public/icon.webp">

Macro-oriented asynchronous full-stack web-framework written in Nim with ♥

Nim language Python language

JavaScript language TypeScript language

wakatime Testing

Documentation Tutorials

VS Code Plugin

Python Bindings NodeJS Bindings

</div>

Why HappyX? 💁‍♀️

HappyX is a web framework with asynchronous, macro-oriented, full stack support.

In HappyX you can write single page, static site generation and server side rendering applications 💡

You can write Rest API with HappyX also 🔌

HappyX is very simple to use. Keep your peace of mind 🙂

Why Not Jester/Karax? 🤔

Jester and Karax have many features, but Jester is a backend web framework, and Karax is a frontend web framework. HappyX is a full-stack web framework that combines the features of Jester and Karax and slightly improves them 🛠

With HappyX you mustn't learn new libraries/frameworks to switch between frontend and backend. You can switch between them easily using HappyX ✌

HappyX is macro-oriented web framework so you mustn't write a lot of code ✨

Features ⚡

Minimal Example 👩‍💻

<table height="180px"> <thead> <tr> <td align="center">SPA</td> <td align="center">SSR</td> </tr> </thead> <tbody> <tr> <td> <pre lang="nim"><code>import happyx
appRoutes "app":
  "/":
    "Hello, world!"

</code></pre> </td><td> <pre lang="nim"><code>import happyx

serve "127.0.0.1", 5000:
  "/":
    "Hello, world!"

</code></pre> </td> <tr>

</tbody> </table>

Get Started 👨‍🔬

Installing 📥

Nimble

nimble install happyx@#head

Nimble via Git

nimble install https://github.com/HapticX/happyx

PyPI

pip install happyx

Usage ▶

SSR

hpx create --name ssr_project --kind SSR
cd ssr_project/src

Main script will be able in /ssr_project/src/main.nim

Run 💻

HTTP ServerFlag
Defaultno flags
Httpx-d:httpx
MicroAsyncHttpServer-d:micro
HttpBeast-d:beast

SPA

hpx create --name spa_project --kind SPA --path-params
cd spa_project

Main script will be able in /spa_project/src/main.nim

Run 💻

Just run this command and see magic ✨

hpx dev --reload

Have A Question? 👀

StackOverflow

Have A Nice Idea? 🍍

Open issue or contact us hapticx.company@gmail.com

Contributing 🌀

See Contributing.md for more information

Donate 💰

Tinkoff

Star History ✨

<a href="https://star-history.com/#HapticX/happyx&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=HapticX/happyx&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=HapticX/happyx&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=HapticX/happyx&type=Date" /> </picture> </a>