TopDev

Làm thế nào để chọn giấy phép phù hợp cho dự án Open Source?

topdev 📖 3 phút đọc ✎ đã sửa

Chọn giấy phép (license) phù hợp cho dự án Open Source là một bước quan trọng, vì nó quyết định cách người khác được phép sử dụng, chỉnh sửa, và phân phối sản phẩm của bạn. Mình sẽ chia quy trình ra thành 5 bước dễ hiểu và đưa luôn ví dụ để bạn áp dụng ngay.



1. Hiểu rõ mục tiêu của bạn#

Trước tiên, bạn cần tự trả lời:

  • Bạn có muốn cho phép người khác dùng dự án vào mục đích thương mại không?

  • Bạn có muốn bắt buộc người khác chia sẻ mã nguồn nếu họ chỉnh sửa không?

  • Bạn muốn giấy phép “thoáng” (permissive) hay “ràng buộc” (copyleft)?

Ví dụ:

  • Nếu muốn càng nhiều người dùng càng tốt → chọn giấy phép thoáng như MIT hoặc Apache 2.0.

  • Nếu muốn buộc mọi bản sửa đổi phải mở lại mã nguồn → chọn giấy phép copyleft như GPL.



2. Phân biệt 2 nhóm giấy phép chính#

Loại giấy phép Đặc điểm Ví dụ phổ biến
Permissive (Thoáng) Cho phép dùng, sửa, phân phối, đóng gói vào sản phẩm thương mại, miễn là giữ thông tin bản quyền. Không bắt buộc mở lại mã nguồn. MIT, Apache 2.0, BSD
Copyleft (Ràng buộc) Nếu ai đó phân phối lại (dù đã chỉnh sửa), họ phải công bố mã nguồn với cùng giấy phép. GPL, AGPL, LGPL


3. Xem xét vấn đề pháp lý & tương thích#

  • Nếu dự án của bạn dùng thư viện có giấy phép khác, bạn phải chọn giấy phép tương thích.

    Ví dụ: GPL không tương thích với tất cả giấy phép MIT/Apache nếu muốn giữ đóng mã.

  • Nếu muốn bảo vệ bản quyền sáng chế (patent) → Apache 2.0 hỗ trợ tốt hơn MIT.



4. Một số lựa chọn phổ biến và khi nên dùng#

Giấy phép Khi nên dùng
MIT Bạn muốn đơn giản, chỉ cần ghi nguồn, không hạn chế thương mại.
Apache 2.0 Giống MIT nhưng có thêm điều khoản bảo vệ bằng sáng chế.
GPL v3 Muốn đảm bảo mọi phiên bản sửa đổi phải mở mã nguồn.
AGPL v3 Giống GPL nhưng áp dụng cả cho phần mềm chạy qua mạng (SaaS).
BSD Giống MIT nhưng có vài biến thể và điều khoản về tên tác giả.


5. Dùng công cụ hỗ trợ chọn nhanh#

Bạn có thể dùng các công cụ chọn license dựa trên câu hỏi:



💡 Mẹo thực tế: Nếu bạn muốn tối đa adoption (nhiều người dùng), MIT hoặc Apache 2.0 là an toàn. Nếu bạn muốn bảo vệ tính mở của dự án → GPL hoặc AGPL.

Bài liên quan trong #Open Source

✓ Đã sao chép link