## 前言

Golang 编写的程序具有原生交叉编译和单二进制文件的特性，同时也兼具了编译语言相对解释语言的高效，同时门槛较低。在实现这个产品的过程中，得到了 STRRL 的支持，非常感谢。这个产品的实践也让我加深了对 OOP 的理解和软件工程设计、流程、项目协作的了解，也踩了一些新手容易踩的 Golang 的坑，积累了一定的经验。

## 产品特性（EN）

• Abuse detection, we do allow pure text only, no photos, no binaries, the uploaded file size can only be less than 2 megabytes.
• ReCAPTCHA support. If you do experiencing a lot from bot, you could try my product.
• Client Tool. We build a powerful client cli tools for you to use, you could also use the curl, there’s no difference. This tool even allow administrator to delete some illegal snippet quickly. If you wanna use it for private sharing, we could help you generate a random 6-digit password for access, you could also define it by yourself.
• Data encryption on storage. We do use chacha20-poly1305 to save your snippet. Due to the need of abuse detection, we can’t and we won’t implement any client-side encryption.
• Auto expiring. Previously, ptpb/pb need administrator to clear the database manually. We do force an expiring time for all uploaded data. The maximum allowed expiration of program is 24h, you can define it yourself, but cannot larger than 24. As for MongoDB, it won’t release the disk space it allocated even the documents deleted, you could try "compact" database if you want.
• Burn-after-read support. Optionally defined by an end user, we allow it. But the server default expiration cannot be 0.
• Syntax highlighting by default, using Google’s prettify.js, same version as stackoverflow.com . If you need raw paste, simply add f=raw as url param in request.
• No extra cost. We don’t wanna show anything towards illegal/invalid request. You just get a status code without any html page sent by our server.
• Single binary. We don’t need any other dependencies except MongoDB.