Añade servidor web y primeras macros de PageTop

- Crea el crate raíz `pagetop` y configura el workspace con
  `helpers/pagetop-macros`.
- Añade las macros #[pagetop::main] y #[pagetop::test] que envuelven
  Actix-web para crear aplicaciones y pruebas asíncronas sin depender
  explícitamente del framework.
- Reexporta, mediante el módulo `service`, los tipos esenciales de
  Actix-web para gestionar servidores y servicios web.
- Implementa `Application::{new, run, test}` para simplificar el
  arranque y la ejecución de tests.
- Expone `pagetop::prelude` con las macros, `service` y `Application`
  para una API pública coherente.
- Incorpora ejemplo `examples/app-basic.rs` que levanta un servidor web
  vacío con el código mínimo para hacerlo.
This commit is contained in:
Manuel Cillero 2025-07-03 20:33:52 +02:00
parent 45e2882653
commit cbee4c2cb8
13 changed files with 1818 additions and 1 deletions

46
src/lib.rs Normal file
View file

@ -0,0 +1,46 @@
//! <div align="center">
//!
//! <img src="https://raw.githubusercontent.com/manuelcillero/pagetop/main/static/banner.png" />
//!
//! <h1>PageTop</h1>
//!
//! <p>Un entorno de desarrollo para crear soluciones web modulares, extensibles y configurables.</p>
//!
//! [![Licencia](https://img.shields.io/badge/license-MIT%2FApache-blue.svg?label=Licencia&style=for-the-badge)](#-license)
//!
//! <br>
//! </div>
//!
//! `PageTop` reivindica la esencia de la web clásica usando [Rust](https://www.rust-lang.org/es)
//! para la creación de soluciones web SSR (*renderizadas en el servidor*) basadas en HTML, CSS y
//! JavaScript.
//!
//! # ⚡️ Guía rápida
//!
//! La aplicación más sencilla de `PageTop` se ve así:
//!
//! ```rust#ignore
//! use pagetop::prelude::*;
//!
//! #[pagetop::main]
//! async fn main() -> std::io::Result<()> {
//! Application::new().run()?.await
//! }
//! ```
#![cfg_attr(docsrs, feature(doc_cfg))]
// RE-EXPORTED *************************************************************************************
pub use pagetop_macros::{main, test};
// API *********************************************************************************************
// Gestión del servidor y servicios web.
pub mod service;
// Prepara y ejecuta la aplicación.
pub mod app;
// PRELUDE *****************************************************************************************
pub mod prelude;