目录结构

Zino开发框架的应用目录组织方式只是一种推荐,可根据实际需求进行调整。尤其是src目录,可以使用Rust模块自由组织, 我们并没有严格限定各个模块之间的调用关系,只要能通过编译皆可。

我们采用了类似于Egg.js的应用目录约定规范:

  1. zino-app
  2. ├─ Cargo.toml
  3. ├─ config
  4. ├─ config.dev.toml
  5. ├─ config.prod.toml
  6. ├─ locale
  7. ├─ en-US.ftl
  8. └─ zh-CN.ftl
  9. └─ openapi
  10. ├─ OPENAPI.toml
  11. ├─ auth.toml
  12. └─ user.toml
  13. ├─ local
  14. ├─ data
  15. └─ mock
  16. ├─ logs.ndjson
  17. └─ users.csv
  18. └─ docs
  19. └─ rapidoc.html
  20. ├─ logs
  21. ├─ public
  22. ├─ 404.html
  23. ├─ data
  24. └─ logs.ndjson
  25. └─ index.html
  26. ├─ src
  27. ├─ controller
  28. ├─ mod.rs
  29. ├─ stats.rs
  30. ├─ task.rs
  31. └─ user.rs
  32. ├─ extension
  33. ├─ casbin.rs
  34. ├─ header.rs
  35. └─ mod.rs
  36. ├─ logic
  37. ├─ mod.rs
  38. ├─ task.rs
  39. └─ user.rs
  40. ├─ main.rs
  41. ├─ middleware
  42. ├─ access.rs
  43. └─ mod.rs
  44. ├─ router
  45. └─ mod.rs
  46. ├─ schedule
  47. ├─ job.rs
  48. └─ mod.rs
  49. └─ service
  50. ├─ mod.rs
  51. ├─ task.rs
  52. └─ user.rs
  53. └─ templates
  54. ├─ layout.html
  55. └─ output.html
  • Cargo.toml为应用的Cargo配置文件。
  • config/config.{env}.toml用于编写不同运行环境的配置文件。
  • config/locale/{lang-id}.ftl于编写i18n多语言文件,目前仅支持Fluent规范。
  • config/openapi/{tag}.toml用于编写OpenAPI规范文档。
  • local/为本地静态资源目录,data/为本地数据目录,docs/为文档目录。
  • logs/用于日志文件输出。
  • public/为通过网络访问的静态资源目录,index.html为默认首页文件,404.html为404文件,data/为共享的数据目录。
  • src/controller/用于编写控制器。
  • src/extension/用于编写辅助函数。
  • src/logic/用于编写业务逻辑。
  • src/main.rs用于启动应用以及自定义初始化。
  • src/middleware/用于编写中间件。
  • src/router/用于配置URL路由规则。
  • src/schedule/用于编写定时任务。
  • src/service/用于编写业务接口服务,供controller调用。
  • templates/用于编写HTML模板文件,目前支持TeraMiniJinja模板。