|
| 1 | +<p align="center"><a href="https://h3ravel.toneflix.net" target="_blank"><img src="https://raw.githubusercontent.com/h3ravel/assets/refs/heads/main/logo-full.svg" width="400" alt="H3ravel Logo"></a></p> |
| 2 | + |
| 3 | +# About H3ravel |
| 4 | + |
| 5 | +H3ravel is a modern TypeScript runtime-agnostic web framework built on top of [H3](https://h3.dev), designed to bring the elegance and developer experience of [Laravel](https://laravel.com) to the JavaScript ecosystem. |
| 6 | + |
| 7 | +## Features |
| 8 | + |
| 9 | +- Laravel-inspired architecture – Service Container, Service Providers, Middleware, Facades |
| 10 | +- Clean Routing – Dedicated routes directory with web and api route files |
| 11 | +- Controllers with decorators – Class-based controllers like Laravel |
| 12 | +- HTTP Kernel – Centralized middleware and request lifecycle handling |
| 13 | +- Arquebus ORM – Beautiful, expressive ORM inspired by Laravel's Eloquent, designed for TypeScript applications |
| 14 | +- Musket CLI - Our Powerful Artisan-like command-line tool for generating code and running tasks |
| 15 | +- Modular Services – Mail, Queue, Cache, Broadcasting support |
| 16 | +- Runtime Agnostic – Works seamlessly across Node.js, Bun, and Deno |
| 17 | +- Type-safe everything – Fully written in TypeScript |
| 18 | + |
| 19 | +## Why H3ravel? |
| 20 | + |
| 21 | +While modern JavaScript frameworks focus on speed and minimalism, they often lack the developer experience and structure found in PHP’s Laravel. H3ravel aims to fill that gap by providing: |
| 22 | + |
| 23 | +- Laravel’s elegance – Familiar MVC patterns, expressive routing, service providers, and middleware. |
| 24 | +- TypeScript-first approach – Strong typing and modern DX out of the box. |
| 25 | +- Built on H3 – A lightweight, framework-agnostic HTTP library that’s: |
| 26 | + - Fast – Optimized for speed with minimal overhead. |
| 27 | + - Flexible – Works with any runtime or deployment target. |
| 28 | + - Composable – Lets us build a layered Laravel-like architecture without restrictions. |
| 29 | +- Runtime agnosticism – Unlike many Node frameworks, H3ravel runs on Node.js, Bun, or Deno with no extra setup. |
| 30 | + |
| 31 | +This combination delivers the productivity of Laravel while leveraging the modern JavaScript ecosystem and runtime flexibility. |
| 32 | + |
| 33 | +## Project Structure |
| 34 | + |
| 35 | +``` |
| 36 | +h3ravel/ |
| 37 | +└── src/ |
| 38 | +│ └── config/ # Configuration files |
| 39 | +│ ├── app/ |
| 40 | +│ │ ├── http/ |
| 41 | +│ │ │ ├── controllers/ # Controllers |
| 42 | +│ │ │ ├── middleware/ # Middleware |
| 43 | +| | └── Providers/ # Service Providers |
| 44 | +│ ├── resources/ |
| 45 | +│ │ ├── views/ # Edge view files |
| 46 | +│ ├── routes/ # Route definitions |
| 47 | +│ │ ├── web.ts # Web routes |
| 48 | +│ │ └── api.ts # API routes |
| 49 | +│ ├── database/ # ORM, migrations, seeds |
| 50 | +│ ├── console/ # CLI commands |
| 51 | +│ ├── services/ # Mail, Queue, Cache |
| 52 | +│ ├── support/ # Helpers, utilities |
| 53 | +│ └── index.ts # Main entry point |
| 54 | +├── storage |
| 55 | +│ └── app |
| 56 | +│ └── public # default uploads directory |
| 57 | +└── public # public directory for public assets |
| 58 | +``` |
| 59 | + |
| 60 | +## Philosophy |
| 61 | + |
| 62 | +- Laravel DX, TypeScript speed – H3ravel brings Laravel’s expressive syntax and architecture to JavaScript with full type safety. |
| 63 | +- Minimal, yet scalable – Built on H3’s tiny but powerful HTTP handling, keeping your app fast and maintainable. |
| 64 | +- Runtime Freedom – Designed to run on Node.js, Bun, and Deno without code changes. |
| 65 | +- Convention over configuration – Opinionated structure for faster development. |
| 66 | + |
| 67 | +## Roadmap |
| 68 | + |
| 69 | +- [x] Application container with service providers |
| 70 | +- [x] Middleware pipeline and HTTP kernel |
| 71 | +- [x] Routing system |
| 72 | +- [x] Config management and environment handling |
| 73 | +- [ ] Community Building |
| 74 | +- [ ] Musket CLI (artisan-like commands) |
| 75 | +- [ ] Cache Management |
| 76 | +- [ ] Queues, Mail, Events, Broadcasting |
| 77 | +- [ ] Arquebus ORM with relationships (Eloquent-style) |
| 78 | +- [ ] First-class runtime adapters (Node, Bun, Deno) |
| 79 | + |
| 80 | +## Contributing |
| 81 | + |
| 82 | +Thank you for considering contributing to the H3ravel framework! The [Contribution Guide](https://h3ravel.toneflix.net/contributing) can be found in the H3ravel documentation and will provide you with all the information you need to get started. |
| 83 | + |
| 84 | +## Code of Conduct |
| 85 | + |
| 86 | +In order to ensure that the H3ravel community is welcoming to all, please review and abide by the [Code of Conduct](#). |
| 87 | + |
| 88 | +## Security Vulnerabilities |
| 89 | + |
| 90 | +If you discover a security vulnerability within H3ravel, please send an e-mail to Legacy via hamzas.legacy@toneflix.ng. All security vulnerabilities will be promptly addressed. |
| 91 | + |
| 92 | +## License |
| 93 | + |
| 94 | +The H3ravel framework is open-sourced software licensed under the [MIT license](LICENSE). |
0 commit comments