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 🙂
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 ✨
- Multiple options for HTTP server! Happyx use
asynchttpserveras default HTTP server (httpxvia-d:happyxHttpx,httpbeastvia-d:happyxBeastandmicrohttpservervia-d:happyxMicroas alternative HTTP servers). - Support
SPAonJSbackend andSSRon other backends. - Build HTML, CSS and pure JS with
buildHtml,buildStyleandbuildJsmacros. - Request models that supports
JSON/XML/Form-Data/x-www-form-urlencodedwithmodelmacro. - Routing and powerful path params.
- Assignment path params with
pathParamsmacro. - Powerful mounting sub-applications with
mountmacro. - Logging with
-d:debug. - Automatic translate with
-d:hpxTranslateor-d:translateflags. - CLI tool for
creating,servingandbuildingyour projects. - Hot code reloading (only for
SPAprojects as of now). - Python bindings
- NodeJS bindings
| SPA | SSR |
import happyx
appRoutes "app":
"/":
"Hello, world!"
|
import happyx
serve "127.0.0.1", 5000:
"/":
"Hello, world!"
|
nimble install happyx@#headnimble install https://github.com/HapticX/happyxpip install happyxhpx create --name ssr_project --kind SSR
cd ssr_project/srcMain script will be able in /ssr_project/src/main.nim
| HTTP Server | Flag |
|---|---|
| Default | no flags |
| Httpx | -d:httpx |
| MicroAsyncHttpServer | -d:micro |
| HttpBeast | -d:beast |
hpx create --name spa_project --kind SPA --path-params
cd spa_projectMain script will be able in /spa_project/src/main.nim
Just run this command and see magic ✨
hpx dev --reloadOpen issue or contact us [email protected]
See Contributing.md for more information