adminix 0.0.2

à la django admin for actix - sqlx
Documentation


# Adminix is an [à la django admin]https://docs.djangoproject.com/en/4.0/ref/contrib/admin/# for [actix]https://actix.rs/ - [sqlx]https://github.com/launchbadge/sqlx


## Getting started

see example/


## Strategy / Tradeoffs

Adminix is implemented with [procedural macros](https://doc.rust-lang.org/reference/procedural-macros.html). A compile type, it introspects the database and builds routes and handlers for the actix server. These handler are simple crud route implemented with SSR, using the [Maud](https://maud.lambda.xyz/) templating library. It use the sqlx query! macro to confirm at compilation time that the queries generated by the macro are compatible with the datase.

Pros : 
- Adminix is quite simple by itself : only hundreds lines of code
- Adminix is quite robust : compilation give lot of assurence of correct behavior
- It's really easy to add to existing actix / sqlx project where the database is the source of thruth

Cons :
- adminix is not an rest API so if you want a now classical back/front architecture, you are on your own
- some


## ⚠ Very very alpha

A lot of assumption where made :
- actix "3" and sqlx "4"
- Sqlite only
- Every table must have an INTEGER "id" primary key
- Foreign key only target "id"
Also, i'm not a proficient rust developper.

## ⚠ No embeded security

It's up to the application to ensure authentification. Use gards !

## Support / Roadmap

| | |
:---:| ---
||Basic CRUD
||sqlite
||postgres
||mysql ?
||foreign key link
||save nullable (option)
||foreign key edit
||reverse foreign key link
||filter on back
||smart table in front (sort, filter)
||home page / template
||pagination
||image blob support (readonly)
||multiple blob file type
||testing (proc macro + async = 🤔)
||support non id primary key ?
||support non id foreign key target ?

## Help welcome !

Please, fill issues !
I'm also accepting merge requests, ping me if I'm not reactive enough : ( f"julienfr{ meaning_of_life + 70 }@gmail.com" )