search
HomeBackend DevelopmentGolangWhat is the open source protocol of go language?

What is the open source protocol of go language?

Jun 07, 2021 pm 02:20 PM
go languageOpen source agreement

The go language adopts the BSD open source license. The BSD open source license is a license that gives users a lot of freedom. They can use it freely, modify the source code, and re-release the modified code as open source or proprietary software. BSD code encourages code sharing, but the copyright of the code author needs to be respected.

What is the open source protocol of go language?

The operating environment of this tutorial: Windows 10 system, GO 1.11.2, Dell G3 computer.

What is the open source protocol of go language?

Go language comes from Bell Labs and was developed from the Limbo language. Limbo is used to develop distributed applications on small computers. It supports modular programming, strong type detection at compile time and runtime, in-process typed communication channels, atomic garbage collection and simple abstract data types. Its purpose Because: it can run safely even on minicomputers without hardware protection. Go and Limbo were developed by the same group of people and have the same excellent features. Go was born at Google in 2007. Google supports the use of 20% of free time to develop experimental projects, and it came out in 2009. The Go language is open source and adopts the BSD license.

BSD open source agreement is an agreement that gives users great freedom. You can use it freely, modify the source code, and re-release the modified code as open source or proprietary software. When you publish code that uses the BSD protocol, or do secondary development of your own products based on the BSD protocol code, you need to meet three conditions:

  • If the re-released product contains If source code is included, the source code must contain the BSD license from the original code.

  • If you redistribute only binary class libraries/software, you need to include the BSD protocol in the original code in the documentation and copyright statement of the class library/software.

  • Do not use the name of the author/organization of the open source code and the name of the original product for marketing purposes.

BSD code encourages code sharing, but the copyright of the code author needs to be respected. BSD is a protocol that is friendly to commercial integration because it allows users to modify and redistribute code, and also allows commercial software to be released and sold using or developed on BSD code. Many companies prefer the BSD protocol when choosing open source products, because they can fully control these third-party codes and can modify or re-develop them when necessary.

Extended information: Comparison of five open source protocols (BSD, Apache, GPL, LGPL, MIT)

BSD open source protocol (original BSD license, FreeBSD license, Original BSD license)

BSD open source agreement is an agreement that gives users great freedom. Basically, users can "do whatever they want" and can use it freely, modify the source code, or re-release the modified code as open source or proprietary software.

But the premise of "doing whatever you want" When you publish code that uses the BSD protocol, or do secondary development of your own products based on the BSD protocol code, you need to meet three conditions:

If the re-released product contains source code, the BSD protocol in the original code must be included in the source code. If only a binary class library/software is redistributed, the BSD license in the original code needs to be included in the documentation and copyright statement of the class library/software. Do not use the name of the author/organization of the open source code or the name of the original product for marketing purposes.

BSD code encourages code sharing, but the copyright of the code author needs to be respected. BSD is a protocol friendly to commercial integration because it allows users to modify and redistribute code, and also allows commercial software to be released and sold using or developed on BSD code. Many companies prefer the BSD protocol when choosing open source products, because they can fully control these third-party codes and can modify or re-develop them when necessary.

Apache License

Apache License is a protocol adopted by Apache, a well-known non-profit open source organization. This agreement is similar to BSD. It also encourages code sharing and respects the copyright of the original author. It also allows code modification and redistribution (as open source or commercial software). The conditions that need to be met are similar to BSD:

You need to give the user of the code an Apache License. If you modify the code, it needs to be stated in the modified file. Extended code (modifications and code derived from source code) must contain the agreements, trademarks, patent statements and other instructions specified by the original author that need to be included in the original code. If the re-released product contains a Notice file, the Apache License must be included in the Notice file. You can add your own license to the Notice, but it cannot appear to be a change to the Apache License.

Apache License is also a license friendly to commercial applications. Users can also modify the code to meet their needs when needed and publish/sell it as an open source or commercial product.

GPL(GNU General Public License)

The Linux we are very familiar with adopts GPL. The GPL agreement is very different from licenses such as BSD and Apache License that encourage code reuse. The starting point of the GPL is the open source/free use of the code and the open source/free use of the reference/modification/derivative code, but the modified and derived code is not allowed to be released and sold as closed source commercial software. This is why we can use all kinds of free Linux, including Linux from commercial companies and various free software on Linux developed by individuals, organizations, and commercial software companies.

The main content of the GPL agreement is that as long as a product under the GPL agreement is used ("use" refers to class library reference, modified code or derivative code) in a software, the software product must also adopt the GPL agreement. Both must be open source and free. This is called "infectiousness". There is no problem in using GPL-licensed products as a separate product, and you can also enjoy the advantage of being free.

Since GPL strictly requires that software products that use GPL class libraries must use the GPL protocol, open source codes that use the GPL protocol, commercial software, or departments that have confidentiality requirements for the code are not suitable for integration/adoptation as class libraries. and the basis for secondary development.

Other details, such as the need to accompany the GPL agreement when re-distributing, are similar to BSD/Apache, etc.

LGPL (GNU Lesser General Public License)

LGPL is an open source license of GPL designed mainly for use with class libraries. Unlike the GPL, which requires that any software that uses/modifies/derives a GPL class library must adopt a GPL license. LGPL allows commercial software to use LGPL class libraries through class library references (links) without requiring the code of open source commercial software. This allows open source code using the LGPL license to be referenced by commercial software as a class library and released and sold.

But if you modify the code or derivatives of the LGPL agreement, all modified code, additional code involving the modified part and derivative code must adopt the LGPL agreement. Therefore, the open source code of the LGPL protocol is very suitable for being referenced by commercial software as a third-party class library, but it is not suitable for commercial software that hopes to use the LGPL protocol code as a basis for secondary development through modification and derivatives.

GPL/LGPL both protect the intellectual property rights of original authors and prevent anyone from using open source code to copy and develop similar products

MIT(MIT)

MIT is the same broad license as BSD. The author only wants to retain the copyright without any other restrictions. In other words, you must include a statement of the original license agreement in your distribution, whether you release it as a binary It is still released as source code.

Recommended learning:Golang tutorial

The above is the detailed content of What is the open source protocol of go language?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Golang vs. Python: The Pros and ConsGolang vs. Python: The Pros and ConsApr 21, 2025 am 12:17 AM

Golangisidealforbuildingscalablesystemsduetoitsefficiencyandconcurrency,whilePythonexcelsinquickscriptinganddataanalysisduetoitssimplicityandvastecosystem.Golang'sdesignencouragesclean,readablecodeanditsgoroutinesenableefficientconcurrentoperations,t

Golang and C  : Concurrency vs. Raw SpeedGolang and C : Concurrency vs. Raw SpeedApr 21, 2025 am 12:16 AM

Golang is better than C in concurrency, while C is better than Golang in raw speed. 1) Golang achieves efficient concurrency through goroutine and channel, which is suitable for handling a large number of concurrent tasks. 2)C Through compiler optimization and standard library, it provides high performance close to hardware, suitable for applications that require extreme optimization.

Why Use Golang? Benefits and Advantages ExplainedWhy Use Golang? Benefits and Advantages ExplainedApr 21, 2025 am 12:15 AM

Reasons for choosing Golang include: 1) high concurrency performance, 2) static type system, 3) garbage collection mechanism, 4) rich standard libraries and ecosystems, which make it an ideal choice for developing efficient and reliable software.

Golang vs. C  : Performance and Speed ComparisonGolang vs. C : Performance and Speed ComparisonApr 21, 2025 am 12:13 AM

Golang is suitable for rapid development and concurrent scenarios, and C is suitable for scenarios where extreme performance and low-level control are required. 1) Golang improves performance through garbage collection and concurrency mechanisms, and is suitable for high-concurrency Web service development. 2) C achieves the ultimate performance through manual memory management and compiler optimization, and is suitable for embedded system development.

Is Golang Faster Than C  ? Exploring the LimitsIs Golang Faster Than C ? Exploring the LimitsApr 20, 2025 am 12:19 AM

Golang performs better in compilation time and concurrent processing, while C has more advantages in running speed and memory management. 1.Golang has fast compilation speed and is suitable for rapid development. 2.C runs fast and is suitable for performance-critical applications. 3. Golang is simple and efficient in concurrent processing, suitable for concurrent programming. 4.C Manual memory management provides higher performance, but increases development complexity.

Golang: From Web Services to System ProgrammingGolang: From Web Services to System ProgrammingApr 20, 2025 am 12:18 AM

Golang's application in web services and system programming is mainly reflected in its simplicity, efficiency and concurrency. 1) In web services, Golang supports the creation of high-performance web applications and APIs through powerful HTTP libraries and concurrent processing capabilities. 2) In system programming, Golang uses features close to hardware and compatibility with C language to be suitable for operating system development and embedded systems.

Golang vs. C  : Benchmarks and Real-World PerformanceGolang vs. C : Benchmarks and Real-World PerformanceApr 20, 2025 am 12:18 AM

Golang and C have their own advantages and disadvantages in performance comparison: 1. Golang is suitable for high concurrency and rapid development, but garbage collection may affect performance; 2.C provides higher performance and hardware control, but has high development complexity. When making a choice, you need to consider project requirements and team skills in a comprehensive way.

Golang vs. Python: A Comparative AnalysisGolang vs. Python: A Comparative AnalysisApr 20, 2025 am 12:17 AM

Golang is suitable for high-performance and concurrent programming scenarios, while Python is suitable for rapid development and data processing. 1.Golang emphasizes simplicity and efficiency, and is suitable for back-end services and microservices. 2. Python is known for its concise syntax and rich libraries, suitable for data science and machine learning.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools