Skip to content

Latest commit

 

History

History
161 lines (137 loc) · 6.24 KB

File metadata and controls

161 lines (137 loc) · 6.24 KB
layout home
hero
name text tagline image actions
Asena
A modern ioc web-framework for bun
Fast, easy and Spring-like
src alt
/asena-logo.svg
Asena
theme text link
brand
Get started
/docs/get-started
theme text link
alt
View on GitHub
features
title details
⚡ High Performance
Built on Bun runtime with up to 295k req/sec. SIMD-accelerated routing and zero-copy file serving for maximum speed.
title details
🎯 Full IoC Container
Field-based dependency injection for all components. Clean architecture with decorators for services, controllers, and middleware.
title details
🔌 Pluggable Adapters
Choose between Ergenecore (native Bun) or Hono adapter. Switch adapters without changing your business logic.
title details
🌐 WebSocket Support
Built-in WebSocket handling with namespace management. Create real-time applications with ease.
title details
🛡️ Type-Safe Validation
Integrated Zod validation with automatic error handling. Request validation at route, controller, or global level.
title details
📦 Official Packages
Logger, Drizzle ORM integration, and CLI tools. Everything you need to build production-ready applications.
<style> .showcase-section { max-width: 1152px; margin: 3rem auto 4rem; padding: 0 1.5rem; text-align: center; } .showcase-title { font-size: 1.75rem; font-weight: 600; margin-bottom: 1.5rem; color: var(--vp-c-text-1); } .showcase-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; } .showcase-card { display: flex; flex-direction: column; align-items: center; padding: 1.5rem; background: var(--vp-c-bg-soft); border: 1px solid var(--vp-c-divider); border-radius: 8px; text-decoration: none; transition: all 0.2s ease; } .showcase-card:hover { border-color: var(--vp-c-brand-1); transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1); } .card-logo { margin-bottom: 1rem; } .crypto-brand { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; font-family: system-ui, -apple-system, sans-serif; font-weight: 600; font-size: 1.375rem; } .ctext { color: var(--vp-c-text-1); } .ctext-grad { background: linear-gradient(135deg, #4dabf7, #339af0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .card-desc { font-size: 0.875rem; color: var(--vp-c-text-2); margin: 0 0 1rem 0; line-height: 1.5; } .card-tags { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; } .ctag { padding: 0.25rem 0.625rem; background: var(--vp-c-brand-soft); color: var(--vp-c-brand-1); border-radius: 4px; font-size: 0.75rem; font-weight: 500; } .view-all { display: inline-block; padding: 0.5rem 1rem; color: var(--vp-c-brand-1); text-decoration: none; font-size: 0.875rem; font-weight: 500; transition: color 0.2s ease; } .view-all:hover { color: var(--vp-c-brand-2); } @media (max-width: 768px) { .showcase-section { margin: 2rem auto 3rem; } .showcase-title { font-size: 1.5rem; } .showcase-grid { grid-template-columns: 1fr; } } </style>