βββββ βββββββ ββββββββ ββββββ ββββββ ββ ββ
ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ
βββββββ βββββββ ββ ββββββ ββ ββ βββ
ββ ββ ββ ββ ββ ββ ββ ββ ββ ββ
ββ ββ βββββββ ββ ββ ββ ββββββ ββ ββ
Platforms
Monolithic repo for developing full stack application, using rust and cargo tools as primary development environment.
Frontend is a standalone astro.build application that will create the frontend bundle served by rust actix server.
To start developing with AstroX you will need rustc > 1.74 and node > 18.14. Clone the project and execute;
cargo run
That's all you need to get started, the interactive cli will guide you through installation process.
Rust written command line interface starts, serves and tests the astro x project. Fast and efficient with only few dependencies will create a professional development environment for rust opinionated project.
Handles installation and system checks, it will check the astroX system prerequisites and either help you install or provide you with necessary information to start the project.
- automatic development port rotation for frontend and backend
- interactive mode, execute actions through cli gui
- git hooks integration
- build the packages
- serve the bundle (with auto restart)
- test the project
- execute the project with cmd line arguments
Pre defined git hooks for quality code writing
- commit msg via commitlint-rs
- pre-commit (test and lint staged files)
- pre-push (test all)
Command list:
--help [print this help ]
--sync-git-hooks [copy git_hooks folder contents to .git/hooks]
--remove-git-hooks [remove hooks from .git/hooks folder]
--build [build production bundle for frontend and backend]
--serve [start the production server with the frontend build]
--test [run the tests]
--create-toml [create a new Astrox.toml file]
--interactive [start the interactive mode]
--system-checks [run the system checks]
--coverage [run cli and backend coverage]
Cli arguments:
--host="127.0.0.1" [ip address]
--port=8080 [actix port number]
--env=prod / dev [environment]
--astro-port=4321 [astro development port number]
--prod-astro-build=true / false [Build astro during cli prod start]
--set-public-api=https://custom.api/api [cli to astro env creation, used for static server url call building]
https://actix.rs/docs/getting-started/
Rust based server from Actix framework.
- serve static astro x files
- 3rd api call example
- logging
- graphql [coming soon]
- ssr [coming soon]
Astro is a frontend framework that focuses on mainly on delivering html first, the fastest and most versatile of the frameworks allows to incorporate any of the major UI frameworks such as React, Svelte, Vue, Solid.js and others ...
The boilerplate provides and example of the Astro 4.0 transition capabilities.
AstroX
ββ .github //workflows and ci/cd checks
ββ ββ workflows
ββ ββ ββ codeql-analysis.yml
ββ ββ ββ pr.yml
ββ ββ ββ relase.yml
ββ git_hooks // set up git hooks for development
ββ ββ commit-msg
ββ ββ commit-msg-windows-example
ββ ββ pre-commit
ββ ββ pre-push
ββ src
ββ ββ backend //Actix backend, own rust project
ββ ββ ββ src
ββ ββ ββ ββ api //Api routes examples
ββ ββ ββ ββ ββ hello
ββ ββ ββ ββ ββ ββ get.rs
ββ ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ ββ ββ post.rs
ββ ββ ββ ββ ββ space_x // server to server call
ββ ββ ββ ββ ββ ββ get.rs
ββ ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ args
ββ ββ ββ ββ ββ collect_args.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ auth // Simple auth route middleware
ββ ββ ββ ββ ββ auth_middleware.rs
ββ ββ ββ ββ ββ login.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ cors
ββ ββ ββ ββ ββ get_cors_options.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ session // Session middleware examples
ββ ββ ββ ββ ββ flash_messages.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ ββ session_middleware.rs
ββ ββ ββ ββ ββ validate_session.rs
ββ ββ ββ ββ main.rs
ββ ββ ββ Cargo.toml
ββ ββ cli // AstroX project runner
ββ ββ ββ cmds
ββ ββ ββ ββ tests
ββ ββ ββ ββ ββ cmd_list_test.rs
ββ ββ ββ ββ ββ interactive_test.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ cmd_list.rs
ββ ββ ββ ββ execute_cmd.rs
ββ ββ ββ ββ interactive.rs
ββ ββ ββ ββ mod.rs
ββ ββ ββ config
ββ ββ ββ ββ tests
ββ ββ ββ ββ ββ get_config_test.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ collect_args.rs
ββ ββ ββ ββ create_dotenv.rs
ββ ββ ββ ββ get_config.rs
ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ toml.rs
ββ ββ ββ development
ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ start_development.rs
ββ ββ ββ pre_run
ββ ββ ββ ββ cargo
ββ ββ ββ ββ ββ checks.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ ββ validate.rs
ββ ββ ββ ββ npm
ββ ββ ββ ββ ββ checks.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ ββ validate.rs
ββ ββ ββ ββ utils
ββ ββ ββ ββ ββ check_semver.rs
ββ ββ ββ ββ ββ git_hooks.rs
ββ ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ execute.rs
ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ system_checks.rs
ββ ββ ββ production
ββ ββ ββ ββ build_production.rs
ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ start_production.rs
ββ ββ ββ tests
ββ ββ ββ ββ execute.rs
ββ ββ ββ ββ mod.rs
ββ ββ ββ utils
ββ ββ ββ ββ mod.rs
ββ ββ ββ ββ terminal.rs
ββ ββ ββ mod.rs
ββ ββ frontend // Astro.Build project
ββ ββ ββ .astro
ββ ββ ββ ββ settings.json
ββ ββ ββ public
ββ ββ ββ ββ astroStation.jpeg
ββ ββ ββ ββ bgAstro.png
ββ ββ ββ ββ bgPattern.png
ββ ββ ββ ββ favicon.svg
ββ ββ ββ ββ hero.jpeg
ββ ββ ββ ββ herobc.jpeg
ββ ββ ββ src
ββ ββ ββ ββ axiosInstance
ββ ββ ββ ββ ββ axiosBackendInstance.test.ts
ββ ββ ββ ββ ββ axiosBackendInstance.ts
ββ ββ ββ ββ components
ββ ββ ββ ββ ββ navbar
ββ ββ ββ ββ ββ ββ Navbar.astro
ββ ββ ββ ββ ββ ββ Navbar.test.ts
ββ ββ ββ ββ ββ ββ NavbarItem.astro
ββ ββ ββ ββ ββ ββ NavbarItem.test.ts
ββ ββ ββ ββ ββ spaceX
ββ ββ ββ ββ ββ ββ spacex.svelte
ββ ββ ββ ββ ββ ββ spacex.test.ts
ββ ββ ββ ββ ββ zoomImage
ββ ββ ββ ββ ββ ββ zoomImage.astro
ββ ββ ββ ββ ββ ββ zoomImage.test.ts
ββ ββ ββ ββ ββ Card.astro
ββ ββ ββ ββ ββ Footer.astro
ββ ββ ββ ββ ββ Hero.astro
ββ ββ ββ ββ ββ Section.astro
ββ ββ ββ ββ layouts
ββ ββ ββ ββ ββ Layout.astro
ββ ββ ββ ββ ββ Layout.test.ts
ββ ββ ββ ββ pages
ββ ββ ββ ββ ββ auth
ββ ββ ββ ββ ββ ββ protected.astro
ββ ββ ββ ββ ββ 404.astro
ββ ββ ββ ββ ββ actix.astro
ββ ββ ββ ββ ββ astro.astro
ββ ββ ββ ββ ββ cli.astro
ββ ββ ββ ββ ββ index.astro
ββ ββ ββ ββ sections
ββ ββ ββ ββ ββ Home
ββ ββ ββ ββ ββ ββ HomeClone.astro
ββ ββ ββ ββ ββ ββ HomeMiddleLinks.astro
ββ ββ ββ ββ ββ ββ HomeSecondary.astro
ββ ββ ββ ββ ββ imgs
ββ ββ ββ ββ ββ ββ actix.png
ββ ββ ββ ββ ββ ββ astro.jpeg
ββ ββ ββ ββ ββ ββ astro.png
ββ ββ ββ ββ ββ ββ astro2.jpeg
ββ ββ ββ ββ ββ ββ cli.png
ββ ββ ββ ββ ββ ββ contact.jpeg
ββ ββ ββ ββ svgs
ββ ββ ββ ββ ββ Actix.astro
ββ ββ ββ ββ ββ AstroIcon.astro
ββ ββ ββ ββ ββ Github.astro
ββ ββ ββ ββ ββ RustIcon.astro
ββ ββ ββ ββ ββ Spaceout.astro
ββ ββ ββ ββ tests
ββ ββ ββ ββ ββ pages.test.ts
ββ ββ ββ ββ env.d.ts
ββ ββ ββ .eslintignore
ββ ββ ββ .eslintrc.cjs
ββ ββ ββ .gitignore
ββ ββ ββ .nvmrc
ββ ββ ββ astro.config.mjs
ββ ββ ββ package.json
ββ ββ ββ prettier.config.cjs
ββ ββ ββ README.md
ββ ββ ββ svelte.config.js
ββ ββ ββ tsconfig.json
ββ ββ ββ vitest.config.ts
ββ ββ main.rs
ββ .gitignore
ββ .nvmrc
ββ Astrox.toml
ββ Cargo.toml
ββ readme.md