flint_dart 1.0.0+7
flint_dart: ^1.0.0+7 copied to clipboard
A modern, expressive, and extensible server-side framework by Eulogia Technologies.
Flint Dart ๐ฅ #
๐ Flint Dart #
Flint Dart is a high-performance, expressive, and extensible server-side framework built entirely with Dart. Designed for developers who demand speed and simplicity, it delivers everything you need to build RESTful APIs, authentication systems, and scalable backend services โ all with clean, modern syntax and hot-reload precision.
โก Build fast. Scale effortlessly. Flint Dart gives you the freedom to create powerful applications without the limits of rigid frameworks.
Developed and maintained by Eulogia Technologies.
๐ Table of Contents #
Topic | Description |
---|---|
๐ Getting Started | Set up Flint in your project |
๐ฃ๏ธ Routing | Define routes for your Flint Dart app |
๐ก Middleware | Protect and modify requests with middleware |
๐ ORM & Models | Work with databases using Flint Dart ORM |
๐พ Database & Migrations | Manage your database schema and migrations |
๐ Authentication | Built-in authentication and Google Auth support |
โ Validation | Validate input like Laravel |
โป๏ธ Hot Reload | Instant feedback while developing |
๐พ Storage | Storage Flint Dart to production |
๐ข Deployment | Deploy Flint Dart to production |
๐ API Docs | Best-in-class API documentation with Swagger UI |
โจ Features #
- ๐งฑ Simple and intuitive routing
- ๐ก๏ธ Middleware support
- ๐ Built-in JWT authentication
- ๐ Secure password hashing
- โป๏ธ Hot reload support for rapid development
- ๐งช Modular structure for scalable projects
- ๐ก Clean API design inspired by Flutter's widget philosophy
- ORM for MySQL/Postgres
- CLI for migrations, models, etc.
- Swagger docs
๐ Getting Started #
1. Install as a Global Package #
If you want to quickly create and run apps without adding Flint as a dependency, install it globally:
dart pub global activate flint_dart
flint create new_app # Create a new Flint project
flint run # Run the project
2. Add as a Project Dependency #
If you prefer Flint to be part of your projectโs dependencies:
dart pub add flint_dart
dart run
import 'package:flint_dart/flint_dart.dart';
void main() {
final app = Flint();
app.get('/', (req, res) async {
return res.send('Welcome to Flint Dart!');
});
app.listen(3000);
}
3. Run with hot reload #
app.get('/hello', (req, res) async {
return res.json({'message': 'Hello, world!'});
});
Middleware #
import 'package:flint_dart/flint_dart.dart';
class AuthMiddleware extends Middleware {
@override
Handler handle(Handler next) {
return (Request req, Response res) async {
final token = req.bearerToken;
if (token == null || token != "expected_token") {
return res.status(401).send("Unauthorized");
}
return await next(req, res);
};
}
app.put('/:id', AuthMiddleware().handle(controller.update));
JWT Authentication #
final token = JwtUtil.generateToken({'userId': 123});
final payload = JwtUtil.verifyToken(token);
Password Hashing #
final hash = Hashing.hashPassword('mySecret');
final isValid = Hashing.verifyPassword('mySecret', hash);
## ๐งฉ WebSocket System (Major Upgrade)
### ๐ Socket.IOโlike API
Flint now ships with an easy-to-use WebSocket engine with event-based communication:
```dart
app.ws('/chat', (socket, params) {
socket.on('message', (data) {
print('๐ฌ ${socket.id} says: $data');
socket.broadcastToRoom('chat', {'event': 'message', 'data': data});
});
});
Client-side:
final ws = FlintWebSocketClient("wss://api.example.com/chat");
ws.on('message', (data) => print("๐ฉ $data"));
ws.emit('message', {'text': 'Hello World'});
๐ฌ Core Features #
.emit(event, data)
โ Send named events easily.on(event, callback)
โ Listen for specific events.onMessage()
and.onJsonMessage()
remain supported for backward compatibility.join(room)
and.leave(room)
for group messaging.broadcast()
and.broadcastToRoom()
for real-time updates- Auto Reconnect on the client when connection drops
- JWT Support using the same middleware chain as HTTP routes
- Auth Middleware can now
### ๐ Project Structure
```bash
lib/
โโโ main.dart
โโโ src/
โ โโโ app.dart
โ โโโ router.dart
โ โโโ request.dart
โ โโโ response.dart
โ โโโ middleware.dart
โ โโโ security/
โ โโโ jwt_util.dart
โ โโโ hashing.dart
๐ฎ Contact & Support ๐ Website: flintdart.eulogia.net
๐ง Email: eulogiatechnologies@gmail.com
๐ GitHub: github.com/eulogiatechnologies/flint_dart
๐ Contributing We welcome contributions! To get started:
git clone https://github.com/eulogiatechnologies/flint_dart.git
cd flint_dart
dart pub get
Then feel free to submit issues or pull requests.