Hiểu đúng về Open Source License: Hướng dẫn chọn giấy phép cho dự án
Việc lựa chọn một giấy phép mã nguồn mở (Open Source License) không đơn thuần là thủ tục thêm file LICENSE vào repository, mà là quyết định mang tính chiến lược bảo vệ quyền tác giả và định hình cách cộng đồng khai thác sản phẩm của bạn.
1. Vì sao không thể bỏ qua file LICENSE?
Nhiều lập trình viên lầm tưởng việc để repository public trên GitHub đồng nghĩa ai cũng có quyền sử dụng tùy ý. Thực tế, khi không có giấy phép rõ ràng, mã nguồn mặc định rơi vào trạng thái Exclusive Copyright (Bản quyền độc quyền):
- Người khác chỉ được xem mã nguồn theo điều khoản dịch vụ của nền tảng lưu trữ.
- Không ai có quyền sao chép, sửa đổi hoặc sử dụng cho mục đích thương mại một cách hợp pháp.
- Các doanh nghiệp và đội ngũ chuyên nghiệp sẽ từ chối tích hợp thư viện của bạn vào sản phẩm vì rủi ro pháp lý.
Một dự án public không có LICENSE không phải là Open Source. Đó chỉ là một đoạn mã công khai mà người khác không dám chạm vào.
2. Hai trường phái giấy phép chính: Permissive vs. Copyleft
Tùy theo mục đích phân phối, giấy phép mã nguồn mở được chia thành hai nhóm triết lý cốt lõi:
| Tiêu chí | Permissive (MIT, Apache 2.0) | Copyleft (GPL, AGPL) |
|---|---|---|
| Mục tiêu cốt lõi | Tối đa hóa mức độ phổ biến của code. | Bảo vệ quyền tự do của mã nguồn kế thừa. |
| Đóng mã thương mại | Cho phép nhúng vào phần mềm độc quyền. | Bắt buộc mở toàn bộ mã phái sinh. |
| Ví dụ điển hình | React, Vue.js, Laravel, Swift. | Linux Kernel, Git, Mastodon. |
3. Quy tắc chọn giấy phép theo mục tiêu
Để tối ưu hiệu quả khi phát hành package hoặc framework, hãy áp dụng quy tắc đơn giản sau:
- MIT License: Lựa chọn tối ưu cho các thư viện, SDK hoặc package tiện ích (helpers, logging, ORM wrapper). Giúp cộng đồng và doanh nghiệp dễ dàng tiếp cận mà không vướng rào cản pháp lý.
- Apache 2.0: Lựa chọn an toàn cho các nền tảng hoặc framework lớn, nơi có nguy cơ tranh chấp quyền sở hữu trí tuệ hoặc bằng sáng chế (Patent grant).
- AGPLv3: Dành riêng cho các ứng dụng web độc lập, nơi bạn muốn ngăn chặn các nhà cung cấp dịch vụ đám mây lấy mã nguồn chạy SaaS đóng mà không đóng góp lại cho cộng đồng.
Lưu ý: Hãy cân nhắc kỹ trước khi chọn GPL cho các thư viện nền tảng (shared libraries), vì điều khoản “lây lan” có thể khiến đa số các dự án thương mại từ chối tích hợp thư viện của bạn.

