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
asynchttpserver
as default HTTP server (httpx
via-d:happyxHttpx
,httpbeast
via-d:happyxBeast
andmicrohttpserver
via-d:happyxMicro
as alternative HTTP servers). - Support
SPA
onJS
backend andSSR
on other backends. - Build HTML, CSS and pure JS with
buildHtml
,buildStyle
andbuildJs
macros. - Request models that supports
JSON
/XML
/Form-Data
/x-www-form-urlencoded
withmodel
macro. - Routing and powerful path params.
- Assignment path params with
pathParams
macro. - Powerful mounting sub-applications with
mount
macro. - Logging with
-d:debug
. - Automatic translate with
-d:hpxTranslate
or-d:translate
flags. - CLI tool for
creating
,serving
andbuilding
your projects. - Hot code reloading (only for
SPA
projects as of now). - Built-in UI library (to enable compile with
-d:enableUi
flag). - 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@#head
nimble install https://github.com/HapticX/happyx
pip install happyx
hpx create --name ssr_project --kind SSR
cd ssr_project/src
Main 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_project
Main script will be able in /spa_project/src/main.nim
Just run this command and see magic ✨
hpx dev --reload
Open issue or contact us [email protected]
See Contributing.md for more information