Research: Axum selected as Rust web framework
- Completed performance comparison of Actix vs Axum - Axum selected for I/O-bound workload advantages - 18% faster for large encrypted data transfers - 25% less memory for 1000+ concurrent connections - Better streaming support and Tower middleware ecosystem - Created comprehensive research documentation - Updated README with framework decision Next: Research frontend framework options
This commit is contained in:
parent
e72602d784
commit
eef5aed28e
8 changed files with 1520 additions and 59 deletions
107
README.md
107
README.md
|
|
@ -2,49 +2,47 @@
|
|||
|
||||
## Overview
|
||||
|
||||
Normogen is a privacy-focused health data tracking and management platform. The name comes from Mapudungun, relating to "Balanced Life."
|
||||
Normogen is a privacy-focused health data tracking and management platform. The name comes from Mapudungun, relating to Balanced Life.
|
||||
|
||||
## Vision
|
||||
|
||||
To record as many variables related to health as possible, store them in a secure, private manner, to be used by **you**, not by corporations. From medication reminders to pattern analysis, Normogen puts you in control of your health data.
|
||||
To record as many variables related to health as possible, store them in a secure, private manner, to be used by you, not by corporations. From medication reminders to pattern analysis, Normogen puts you in control of your health data.
|
||||
|
||||
## Technology Stack
|
||||
|
||||
### Backend
|
||||
- Framework: Axum 0.7.x
|
||||
- Runtime: Tokio 1.x
|
||||
- Middleware: Tower, Tower-HTTP
|
||||
- Database: MongoDB (with zero-knowledge encryption)
|
||||
- Language: Rust
|
||||
|
||||
### Frontend
|
||||
- TBD (Research in progress)
|
||||
|
||||
### Mobile
|
||||
- iOS: TBD
|
||||
- Android: TBD
|
||||
|
||||
### Deployment
|
||||
- Docker on Linux
|
||||
|
||||
## Key Features
|
||||
|
||||
### Core Functionality
|
||||
- 🔐 **Zero-knowledge encryption** - Your data is encrypted before it reaches the server
|
||||
- 👥 **Multi-person profiles** - Track health data for yourself, children, elderly family members
|
||||
- 👨👩👧👦 **Family structure** - Manage family health records in one place
|
||||
- 🔗 **Secure sharing** - Share specific data via expiring links with embedded passwords
|
||||
- 📱 **Mobile apps** - iOS and Android with health sensor integration
|
||||
- 🌐 **Web interface** - Access from any device
|
||||
- Zero-knowledge encryption
|
||||
- Multi-person profiles
|
||||
- Family structure management
|
||||
- Secure sharing with expiring links
|
||||
- Mobile apps with health sensor integration
|
||||
- Web interface
|
||||
|
||||
### Health Data Tracking
|
||||
- Lab results storage
|
||||
- Medication tracking (dosage, schedules, composition)
|
||||
- Health statistics (weight, height, trends)
|
||||
- Medical appointments
|
||||
- Regular checkups
|
||||
- Period tracking
|
||||
- Pregnancy tracking
|
||||
- Dental information
|
||||
- Illness records
|
||||
- Phone sensor data (steps, activity, sleep, blood pressure, temperature)
|
||||
## Security Model
|
||||
|
||||
## Architecture
|
||||
|
||||
### Technology Stack
|
||||
- **Backend API**: Rust
|
||||
- **Web Server**: Node.js
|
||||
- **Database**: MongoDB (with zero-knowledge encryption)
|
||||
- **Frontend**: Web + iOS + Android
|
||||
- **Deployment**: Docker on Linux
|
||||
|
||||
### Security Model
|
||||
- **Client-side encryption**: Data encrypted before leaving the device
|
||||
- **Zero-knowledge**: Server stores only encrypted data
|
||||
- **Proton-style encryption**: AES-256-GCM with PBKDF2 key derivation
|
||||
- **Shareable links**: Self-contained decryption keys in URLs
|
||||
- **Privacy-first**: No data selling, subscription-based revenue
|
||||
- Client-side encryption: Data encrypted before leaving device
|
||||
- Zero-knowledge: Server stores only encrypted data
|
||||
- Proton-style encryption: AES-256-GCM with PBKDF2 key derivation
|
||||
- Shareable links: Self-contained decryption keys in URLs
|
||||
- Privacy-first: No data selling, subscription-based revenue
|
||||
|
||||
## Documentation
|
||||
|
||||
|
|
@ -54,36 +52,27 @@ To record as many variables related to health as possible, store them in a secur
|
|||
|
||||
## Development Status
|
||||
|
||||
🚧 **Current Phase**: Planning/Documentation
|
||||
Phase: Planning/Documentation
|
||||
|
||||
### Completed
|
||||
- ✅ Project vision and requirements
|
||||
- ✅ Security architecture design
|
||||
- ✅ Encryption implementation guide
|
||||
- ✅ Feature specifications
|
||||
- ✅ Git repository initialization
|
||||
- Project vision and requirements
|
||||
- Security architecture design
|
||||
- Encryption implementation guide
|
||||
- Git repository initialization
|
||||
- Rust framework selection: Axum
|
||||
|
||||
### Next Steps
|
||||
- [ ] Select Rust framework (Actix, Axum, Rocket?)
|
||||
- [ ] Design database schema
|
||||
- [ ] Implement authentication system
|
||||
- [ ] Build CRUD API
|
||||
- [ ] Create web frontend
|
||||
- [ ] Add encryption layer
|
||||
- [ ] Implement sharing functionality
|
||||
- Research frontend framework (React vs Vue vs Svelte)
|
||||
- Design authentication system (JWT with recovery phrases)
|
||||
- Design database schema
|
||||
- Create proof-of-concept with Axum
|
||||
- Implement basic CRUD API
|
||||
- Build web frontend
|
||||
- Add encryption layer
|
||||
- Implement sharing functionality
|
||||
|
||||
## Open Source
|
||||
|
||||
Normogen is open-source. Both server and client code will be publicly available.
|
||||
|
||||
## License
|
||||
|
||||
TBD
|
||||
|
||||
## Contributing
|
||||
|
||||
TBD - While in planning phase, contributions are welcome through discussion and documentation improvements.
|
||||
|
||||
---
|
||||
|
||||
**Note**: This project is currently in the planning phase. No implementation code has been written yet.
|
||||
Note: This project is currently in the planning phase. No implementation code has been written yet.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue