Introduction
What is Vona?
Vona is an intuitive, elegant and powerful Node.js web framework for rapidly developing enterprise applications of any size. It pioneers dynamic DTO inference and generation capabilities, significantly improving development efficiency and experience
Philosophy
1. About Coding
Many frameworks use the simplest use cases to demonstrate design elegance, ignoring the coding challenges presented by business complexity. As business grows and changes, project code quickly degrades and becomes difficult to maintain. Vona, however, addresses the complexity of large-scale businesses and proposes a series of engineering solutions. This allows us to maintain elegant and intuitive code even when developing large-scale business systems, improving development efficiency and experience while facilitating subsequent code iteration and maintenance
2. About Performance
Many frameworks use the simplest use cases to demonstrate high performance, ignoring the performance challenges presented by business complexity. As business grows and changes, project performance plummets, and various optimization and mitigation measures lead to cumbersome and lengthy code. Vona, however, addresses the complexity of large-scale businesses and incorporates caching strategies into the framework's core, implementing mechanisms such as two-layer cache
, query cache
, and entity cache
. This makes it easy to develop large-scale business systems, ensuring that code remains elegant and intuitive
Features
Developed in TypeScript
: Provides comprehensive TypeScript type hintsUsing ESM modules throughout
: Faster project startupComplete modular system
: Module-based business segmentation makes code more cohesive and easier to reuse and shareIOC container and dependency lookup
: We recommend usingdependency lookup
to obtain bean instances directly from the container, making code writing more intuitive and elegantUniversal bean configuration capabilities
: All options of bean classes can be modified in App Config, significantly improving the scalability of the entire system and saving a large amount of configuration-related codeBean global singleton
:Async Local Storage
is used under the hood to implement a complete global singleton mechanism, ensuring very low memory usage and significantly improving garbage collection performanceMulti-tenancy
: Supports the development of multi-tenancy SaaS systems with a shared database schema, but data generated during operation is isolatedMulti-database and multi-datasource
: Supports multi-database and multi-datasource, and provides out-of-the-box read-write splitting and dynamic datasource capabilitiesDatabase Transaction
: Built-in database transaction capabilities and support for transaction propagation mechanismsDynamic DTO Inference and Generation
: Pioneers dynamic DTO inference and generation capabilities, significantly improving development efficiency and experienceCli Commands
: Provides a large number of Cli commands for generating code skeletons for various resourcesMenu Commands
: Execute Cli commands through the menus, significantly reducing mental overhead and improving the development experienceConfiguration Capabilities Based on Multi-Dimensional Variables
: Loads env/config files based on multi-dimensional variables, providing a more flexible configuration mechanism and supporting more complex business scenariosMore Comprehensive AOP Programming
: Provides more comprehensive AOP programming capabilities, including pre-handle aspect, subject aspect, and object aspectSSR Integration
: Provides out-of-the-box SSR rendering capabilities, supporting both the frontend website and the backend admin systemDemo Playground
: Provides a Demo Playground, which allows us to test the code and verify the ideas very conveniently and quickly
Technology Stack
Name | Version |
---|---|
Nodejs | >=24.1.0 |
Typescript | >=5.7.3 |
Koa | >=3.0.0 |
Redis | >=7.2.6 |
MySQL | >=8 |
Postgresql | >=17 |
- Redis: Required
- MySQL/Postgresql: Choose what you want to use
Stay In Touch
License
MIT License
Copyright (c) 2016-present, Vona