AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Dropbox 开源其 Go 语言工具库

  • 2014-07-07
  • 本文字数:708 字

    阅读完需:约 2 分钟

近日,Dropbox 开源了其基于 Go 语言的工具库 godropbox ,并表示在一年前已经决定将 Dropbox 中对性能要求比较高的后端程序从 Python 迁移到 Go 语言。Dropbox 的几乎所有的代码都是用 Python 编写的, Python 语言被广泛使用在服务器端、桌面的客户端、网站控制逻辑以及后端的 API 和分析上。Dropbox 亲睐 Python 简单易学、开发效率高等特点,但是现在为了支撑日益增长的用户数量,Dropbox 不得不将部分对性能要求比较高的业务替换为有更好的并发支持和更快的运行速度的 Go 语言。

但是 Go 语言的发展尚不成熟,比如在 Dropbox 使用过程中就发现 Go 语言缺少构建大型系统所需要的健壮的程序库。Dropbox 开发团队为了解决此问题,封装了很多实用的 Go 语言工具库,并将其开源以帮助社区开发基于 Go 语言的大型系统。Dropbox 承诺他们内部使用的也是开源的 godropbox ,他们会持续维护更新 godropbox。godropbox 中包含了很多工具库,下面是部分热门库:

  • caching 一个构建缓存层的工具包
  • container 包含了众多的容器 / 缓存数据结构
  • container/lrucache 标准的 LRU 缓存
  • container/set 集合的实现
  • database 数据库操作工具类
  • database/sqlbuilder 编程式拼装 SQL 工具包
  • errors 强化了标准错误接口并且提供栈跟踪的信息
  • gocheck2 单元测试框架
  • hash2 哈希函数工具类
  • memcache memcache 客户端
  • net2 标准的 net 包的扩展
  • time2 标准的 time 包的扩展

另外,需要说明的是 Dropbox 并不是把所有业务都迁移到 Go,而只是把对性能要求比较高的基础部分迁移。Dropbox 会继续把 Python 当作主要的开发语言。

读者可以到 GoDoc 上详细了解 godropbox。目前 godropbox 的很多工具包都不能单独使用,希望接下来 Dropbox 可以为每个功能提供单独的工具包。

2014-07-07 07:263248
用户头像

发布了 219 篇内容, 共 146.5 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

JavaScript进阶(三)模块化

Augus

JavaScript 9月日更

【LeetCode】回文链表Java题解

Albert

算法 LeetCode 9月日更

linux之fping命令

入门小站

Linux

Opus从入门到精通(四)Opus解码程序实现

轻口味

android 音视频 9月日更

模块八作业:设计消息队列存储消息数据的MySQL表格

Felix

产品分析:谁是利益相关者?

石云升

产品经理 9月日更

Prometheus 2.22.0 新特性

耳东@Erdong

Prometheus 9月日更

小小感悟

Nydia

CyclicBarrier类在性能测试中应用

FunTester

线程 多线程 性能测试 线程安全 FunTester

k8s deployment controller源码分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

Scrum Patterns:昨日天气(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

写给互联网工程师的5G书 | 2. 无线传输

俞凡

架构 5G

谈 C++17 里的 Observer 模式 - 补

hedzr

c++ 设计模式 观察者模式 Design Patterns c++17

autojs自动化框架简介

IT蜗壳-Tango

9月日更

【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

码界西柚

Java quartz 任务调度 9月日更

【Vuex 源码学习】第六篇 - Vuex 的模块收集

Brave

源码 vuex 9月日更

架构实战营 - 模块 8 - 设计消息队列存储消息数据的 MySQL 表格

雪中亮

架构实战营 #架构实战营

【LeetCode】括号的最大嵌套深度Java题解

Albert

算法 LeetCode 9月日更

Linux初体验:Linux操作系统

在即

9月日更

什么是数据粒度

奔向架构师

数据仓库 9月日更

中秋节如何拍月亮

卢卡多多

9月日更

写给互联网工程师的5G书 | 3. 基础架构

俞凡

架构 5G 网络

模块八作业

NewBranSTONE

架构实战营

要养成编写有语义的HTML的习惯

Regan Yue

html 大前端 9月日更

利用 Python 分析了一波月饼,我得出的结论是?

JackTian

Python 数据分析 数据可视化 中秋 月饼

网络攻防学习笔记 Day140

穿过生命散发芬芳

9月日更 网站安全基础

在线JSON转jsdoc工具

入门小站

工具

华强买瓜•程序员版

三分恶

程序员

Redis核心原理与实践--列表实现原理之quicklist结构

binecy

redis 数据结构 原理分析

【Flutter 专题】42 图解页面截屏与本地保存小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

JVM启动参数学习笔记一

风翱

9月日更 JVM启动参数

Dropbox开源其Go语言工具库_Python_小盖_InfoQ精选文章