网站资料 · 技术情报 · 相似站点

square.github.io

暂未发现付费内容
访问网站
站内浏览 6 次 访问跳转 2 次 正常
Square Open Source 首页完整截图

快速了解

分类
编程开发
语言
未知
付费内容信号
暂未发现付费内容已观察
注册年份
2013
主机
Fastly推测
HTTPS 证书信任
通过已观察
最后更新

AI 生成的网站测评

AI 生成

本测评由 AI 根据公开资料生成,未经逐项人工核实;域名、证书等事实以本页采集数据为准。

Square Open Source是什么网站?

Square Open Source 是 Square 公司把自家开源项目集中展示出来的官网,地址在 square.github.io。它本身不提供托管或代码仓库,而是按编程语言分类,给出每个项目的一句话说明和指向 GitHub 的入口。

主要用途

  • 让 Android、Java、Kotlin、Go、C、iOS 等方向的开发者快速找到 Square 出品的库和工具。
  • 每个条目说明“这个库解决什么问题”,点进去到 GitHub 看源码、文档和版本。

适合谁、什么时候用

  • Android 开发者选型网络、图片、JSON、测试工具时,可以在这里横向对比同一家公司的方案。
  • 后端或基础设施开发者找证书、TLS、指标、SQL 相关工具时,Go 分类下有对应项目。
  • 想了解 Square 技术栈、或按语言筛选开源库的人。

页面里有哪些代表项目

  • Android:OkHttp(HTTP 客户端)、Retrofit(类型安全 HTTP 客户端)、Picasso(图片下载与缓存)、LeakCanary(内存泄漏检测)、Moshi(JSON 库)。
  • Go:ghostunnel(带双向认证的 SSL/TLS 代理)、certigo(证书检查与验证)、metrics(指标查询引擎)。
  • iOS:PonyDebugger(用 Chrome 开发者工具远程调试网络与数据)、Aardvark(生成可操作的 bug 报告)。

和其他开源聚合站的区别

它只收 Square 自家项目,不做全社区索引,所以范围窄但方向集中;相比直接在 GitHub 上搜,这里按语言分好类、每条有用途说明,适合先建立候选清单,再逐个跳去 GitHub 看细节。

在Android项目里如何选择OkHttp、Retrofit和Moshi搭配使用?

在 Android 项目里,这三者不是三选一,而是常见的一套组合:Retrofit 负责接口声明,OkHttp 负责底层网络,Moshi 负责 JSON 与对象的转换。三者都能在 Square Open Source 找到:Square Open Source 收录了 okhttp、retrofit、moshi,定位分别是 HTTP 客户端、类型安全的 HTTP 客户端、面向 Kotlin/Java 的现代 JSON 库。

搭配时的分工

  • OkHttp:真正发请求、连接池、拦截器、缓存、超时。需要统一加日志、加请求头、做重试或换 base URL 时,改的是它。
  • Retrofit:把 HTTP 接口写成 Kotlin/Java 方法,用注解描述路径和参数。它内部默认用 OkHttp 发请求,所以两者天然一起用。
  • Moshi:把响应 JSON 转成数据类,或把请求对象转成 JSON。Retrofit 通过 converter 接入它。

选择条件

  • 只用 OkHttp 就够:接口很少、请求逻辑简单,或者你只想手动拼 URL、手动解析 JSON。
  • 需要 Retrofit:接口数量多、希望用接口方法统一管理、想让请求和响应自动映射成对象。
  • 需要 Moshi:项目用 Kotlin,想要比 Gson 更贴近 Kotlin 的空安全和默认值行为,或者需要自定义 adapter 处理特殊字段。

具体组合方式

  1. 用 OkHttpClient 配置超时、拦截器、缓存。
  2. 创建 Retrofit 实例时传入这个 OkHttpClient。
  3. 给 Retrofit 添加 MoshiConverterFactory,让返回值直接是数据类。
  4. 接口方法用 suspend 或返回 Call,按项目协程方案决定。

例如需要给所有请求加统一 header、同时把 JSON 自动转成 Kotlin data class,就可以按上面四步搭:OkHttp 管传输,Retrofit 管接口,Moshi 管序列化。

如果项目里已经用了 Gson,也可以先只换 Retrofit + OkHttp,Moshi 作为后续替换项;但新 Kotlin 项目直接三者搭配更顺。

LeakCanary怎么帮助定位和修复Android内存泄漏?

LeakCanary 是 Square 开源、托管在 Square Open Source 上的 Android 内存泄漏检测库,核心价值是自动发现“该被回收却没被回收”的对象,并给出引用链,帮你定位是谁在持有它。

它怎么定位泄漏

  • 在 Android 应用运行期间自动监控 Activity、Fragment 等对象的销毁与回收情况。
  • 对象本应被回收却仍可达时,主动触发堆转储(heap dump)并分析引用路径。
  • 输出泄漏对象的引用链,指出是哪条引用把它“挂住”了,通常能直接看到罪魁祸首(如静态变量、未注销的监听器、非静态内部类等)。
  • 以通知和日志形式呈现结果,不需要你手动抓 hprof 再慢慢翻。

拿到引用链之后怎么修

  1. 看引用链最靠近泄漏对象的那一环:是谁持有它。
  2. 常见修法:把静态引用改为弱引用或在合适时机置空;在 onDestroy 里注销监听器、广播、回调;把非静态内部类改成静态内部类并避免隐式持有外部 Activity。
  3. 修完重跑,确认 LeakCanary 不再报告同一处泄漏。

适合谁、什么场景用

  • 开发阶段排查偶发或反复出现的 Activity/Fragment 泄漏。
  • 代码评审前后做回归验证,或给团队新人一个直观的“泄漏长什么样”的示例。
  • 注意它主要用于调试,通常不随正式发布版本一起打包。

和同类思路的侧重点

  • 相比手动用 Android Studio Profiler 抓堆转储,LeakCanary 更偏“自动发现 + 直接给引用链”,省去自己判断哪些对象可疑的步骤;Profiler 更适合做整体内存占用和分配分析。
  • 相比只做静态检查的工具,它基于运行时真实对象可达性,报出的泄漏更贴近实际发生的问题。

下一步:在 debug 依赖里引入 LeakCanary,跑一遍主要页面(尤其是频繁进出的 Activity),按通知里的引用链逐条排查。

Picasso和Pollexor在图片加载与处理上有什么区别?

Picasso 和 Pollexor 解决的是图片链路里两个不同环节的问题,不是同类竞品。

  • Picasso:Android 端的图片下载与缓存库,负责把网络或本地图片取回来、缓存并加载进 ImageView。
  • Pollexor:Thumbor 图片服务的 Java 客户端,负责拼装带处理参数的图片 URL,把缩放、裁剪等处理交给 Thumbor 服务端完成。

各自的使用场景

用 Picasso 的情况:App 需要在列表、详情页里展示远程图片,希望自动处理内存与磁盘缓存、请求取消、占位图,避免自己写下载和缓存逻辑。它工作在客户端。

用 Pollexor 的情况:团队已经部署了 Thumbor 图片服务,需要在 Java/Android 代码里以流式 API 生成处理后的图片地址,例如按尺寸、裁剪区域、滤镜拼出 URL。它本身不做下载和缓存,只负责生成地址。

关键区别

维度 Picasso Pollexor
角色 客户端图片加载库 服务端图片服务客户端
处理发生位置 客户端(下载、缓存、显示) 服务端(Thumbor 执行处理)
是否依赖外部服务 否 是,需要 Thumbor
主要产出 加载好的图片 处理后的图片 URL

怎么选

  • 只做常规图片加载与缓存:用 Picasso。
  • 已有 Thumbor、希望把图片处理集中到服务端:用 Pollexor 生成 URL,再交给加载库(例如 Picasso 或 Square Open Source 里的 okhttp)去请求。

两者可以组合:Pollexor 负责“要哪个处理版本”,Picasso 负责“把它取回来并显示”。

如何用Sqldelight根据SQL生成类型安全的Kotlin API?

SQLDelight 的核心思路是:你写 .sq 文件里的 SQL,编译期生成类型安全的 Kotlin API,而不是运行时拼字符串。它属于 Square Open Source 收录的项目,资料中的定位是“Generates typesafe Kotlin APIs from SQL”。

使用步骤

  1. 在项目中添加 SQLDelight 的 Gradle 插件,并配置数据库名称和包名。
  2. 在 src/main/sqldelight/<包名>/*.sq 下写建表和查询语句,例如:
    • CREATE TABLE player (id INTEGER PRIMARY KEY, name TEXT);
    • selectAll: SELECT * FROM player;
  3. 编译项目,插件会为每条查询生成对应的 Kotlin 函数和返回类型,如 selectAll() 返回 List<Player>。
  4. 在代码里通过生成的 Database 类调用这些函数,插入、更新、删除同样以带参数的方法暴露。

适合谁

需要跨 Android 与 Kotlin 多平台、又希望 SQL 保持可读和可校验的团队。相比在代码里手写 SQL 字符串,它把列名、参数类型和返回值都交给编译器检查,写错列名或类型会在编译阶段报错。

选择条件

  • 如果你已经在用 Room 这类注解式 ORM,SQLDelight 更偏向“SQL 优先”,SQL 文件本身就是唯一事实来源。
  • 如果你只是做简单的键值存储或单表 CRUD,引入它的配置成本可能不划算。
  • 资料中 SQLDelight 与 workflow、anvil 等并列在 Square 的开源项目列表里,说明它面向的是 Android/Kotlin 生态中需要类型安全和多平台支持的场景。

下一步

从官方 GitHub 仓库的 Gradle 配置示例入手,先建一张表加一条查询,跑通编译和调用,再逐步把现有 SQL 迁移进去。

ghostunnel如何为不支持TLS的服务提供双向认证代理?

ghostunnel 是 Square 开源的一个 Go 语言 SSL/TLS 代理,核心用途就是给本身不支持 TLS 的服务加上一层加密和双向认证(mTLS),而不用改动后端服务代码。

它怎么工作

  • 在服务前面起一个 ghostunnel 进程,对外监听 TLS 端口。
  • 客户端连 ghostunnel 时完成 TLS 握手,ghostunnel 校验证书(双向认证:既验证客户端证书,也让客户端验证服务端证书)。
  • 握手通过后,ghostunnel 把解密后的明文流量转发给后面那个只讲明文、不懂 TLS 的服务。
  • 后端服务完全无感知,仍然按原来的方式收发数据。

典型使用场景

例如你有一个只监听 localhost、不支持 TLS 的内部服务,想安全地暴露给其他机器或团队访问:在服务所在机器上跑 ghostunnel,让它监听对外端口并配置好证书,后端指向本地服务端口即可。这样加密和身份校验都由代理承担。

选择它的条件

  • 后端服务无法改造、不能自己加 TLS。
  • 需要双向认证,而不只是加密。
  • 环境是 Go 生态、希望部署简单(单个二进制)。

相关工具

同属 Square 开源、常一起出现的还有 Square Open Source 里的 certstrap(用于搭建 CA、签发证书),可以用它来生成 ghostunnel 所需的证书链。

开源软件是什么?普通人该怎么选和用

开源软件指源代码公开、允许他人查看、修改和再分发的软件。它不等于免费,也不等于没有版权——是否收费、能否商用、二次发布要满足什么条件,取决于具体的开源许可证。对普通人来说,判断一款开源软件值不值得用,关键看三点:许可证是否匹配你的用途、项目是否仍在活跃维护、以及它能否解决你的具体任务。下面按这三个维度展开。

开源软件和"免费软件"不是一回事

很多人把开源等同于免费,这是最常见的误区。开源描述的是源代码的获取与使用权利,免费描述的是价格。两者可以重合,也可以分离:

  • 有的开源软件完全免费,靠社区或捐赠维护;
  • 有的开源软件本身免费,但官方提供付费的技术支持、托管或企业版;
  • 也有软件免费但不开源(只给可执行文件,不给源代码)。

所以看到"开源"两个字,不要直接推断"免费"或"可以随便用"。真正决定你能怎么用的,是它附带的许可证。

常见许可证决定你能做什么

许可证是开源软件的使用规则。同样是开源,不同许可证对"修改后要不要也开源""能不能闭源商用"的要求差别很大。下面是最常见的几类:

许可证 大致类型 修改后必须开源吗 典型场景
MIT 宽松型 不要求 想自由使用、闭源集成
Apache 2.0 宽松型 不要求 商用、需专利授权条款
GPL 传染型(Copyleft) 分发修改版时要求 希望衍生作品也保持开源
LGPL 弱传染型 有限要求 库文件被闭源软件调用

对普通用户来说,日常使用(自己装来用、不修改不分发)几乎不受许可证限制。真正需要留意许可证的是两类人:把开源代码嵌进自己产品再发布的开发者,以及想基于开源项目做二次分发的人。如果你属于这两类,务必先读项目根目录下的 LICENSE 文件,而不是凭印象判断。

开源不等于安全,也不等于好用

"源代码公开所以更安全"是一种想当然。公开确实让更多人能审查代码,但有没有人真的去审查、发现问题后有没有人及时修,才是安全的关键。判断一个开源项目是否可靠,可以看这些信号:

  • 最近提交时间:仓库几个月甚至几年没更新,遇到漏洞可能没人修;
  • issue 和 PR 的响应:大量长期未处理的 issue,说明维护者精力有限或已放弃;
  • 发布节奏:是否有稳定的版本发布,还是长期停在某个旧版本;
  • 社区规模:文档、论坛、问答是否活跃,出问题能不能找到人。

反过来,一个更新频繁、社区活跃的小众开源工具,往往比一个多年不更新的大牌项目更值得信任。

按用途挑选开源替代品

选开源软件,先明确你要完成的任务,再看有没有成熟替代品。以图像处理为例,ImageOptim 就是一类面向"压缩图片、减小文件体积"任务的开源工具,它的定位是替代"导出为 Web 格式"这类操作,而不是替代完整的图像编辑软件。这说明一个重要思路:开源替代品常常只覆盖某个具体环节,而不是一比一替换整个商业软件。

按用途大致可以这样找:

  • 图像/媒体处理:先想清楚是"编辑"还是"压缩/转换",前者找编辑器,后者找专用工具;
  • 办公文档:找能读写通用格式(如 docx、xlsx)的套件,注意复杂排版可能走样;
  • 开发工具:这类开源生态最成熟,编辑器、版本控制、包管理基本都有开源方案;
  • 系统工具:压缩、清理、格式转换等小工具,开源选择非常多。

挑选时的通用检查清单:

  1. 它能不能完成你的核心任务(先看功能,不看名气);
  2. 最近一次更新是什么时候;
  3. 有没有清晰的安装说明和文档;
  4. 出问题时去哪里求助(issue 区、论坛、聊天群)。

安装和使用中的常见卡点

开源软件的安装方式比商业软件更杂,遇到问题先分清是哪一类:

  • 来源不明:只从项目官网或官方代码仓库下载,不要用来路不明的第三方打包版本;
  • 依赖缺失:部分工具需要先装运行环境或其他组件,报错信息通常会指出缺什么;
  • 权限与系统限制:某些系统会拦截未签名应用,需要手动允许,操作前确认来源可信;
  • 版本混乱:同一工具有稳定版和开发版,日常使用优先选稳定版。

遇到问题时的求助顺序

  1. 先查官方文档:多数基础问题文档里就有答案;
  2. 搜 issue 区:你的问题很可能别人已经提过,看有没有解决方案或临时绕过办法;
  3. 看社区论坛/聊天群:适合文档没覆盖的使用经验类问题;
  4. 自己提 issue:写清版本、系统、复现步骤和报错信息,越具体越容易被回应。

提 issue 时不要只写"用不了",而要写"在什么系统、什么版本、执行了什么操作、期望什么结果、实际报了什么错"。这几乎决定了你能不能得到有效帮助。

一句话决策

日常自己用、不修改不分发,选开源软件主要看功能是否够用 + 项目是否还在维护;要把代码嵌进自己的产品再发布,才需要认真读许可证。开源是权利和协作方式,不是质量或免费的保证——把它当成一个需要核实的选项,而不是一个可以放心的标签。

网站信息概览

依据当前可见线索,域名长期存在且接入成熟网络服务,这些独立信号共同指向更稳定的运营投入,但不能单独证明内容或交易绝对可信。依据当前可见线索,多个元数据缺口叠加后,影响可能不只是一项 SEO 检查未通过,而是外部入口整体缺少一致表达。

域名与注册信息

域名最早登记于 2013 年,注册历史相对较长。结合现有公开信息推测,注册商为 MarkMonitor Inc.,属于企业品牌域名管理服务商。域名处于正常锁定状态,可降低未经授权转移的风险。域名使用常见的 .io 通用顶级域。

DNS 与邮件配置

现有迹象表明,NS 记录显示该域名接入了 Amazon Route 53。域名设置了 CAA,证书签发机构受到 DNS 记录约束。未发现 CNAME,当前记录直接解析到地址。DNS 中没有邮件交换记录。当前未检测到 DNSSEC 签名。

TLS 与证书

证书使用 RSA 2048 位公钥,兼容性较广。服务器返回了完整证书链。证书未包含组织名称,按现有字段归为 DV 域名验证证书。现有迹象表明,HTTPS 使用 Let's Encrypt 的自动化证书。TLS 证书采用约 89 天的短有效期。

HTTP 响应

6 项常用安全响应配置均未出现。该资源采用开放的跨域读取策略。响应已省略 X-Powered-By 标头。从公开技术信号来看,响应中的 x-cache、x-served-by、via 表明流量经过 CDN 或缓存代理。未在响应头中发现明显的内部地址或调试信息。

技术栈分析

依据当前可见线索,公开信号足以推测网站使用 Fastly,却不足以确定版本。外部扫描仍可能围绕这些技术展开,只是无法直接命中特定版本范围。

SEO 与社交分享

页面缺少描述标签,搜索平台可能自行截取正文。页面没有声明首选 URL。社交分享时平台需要自行提取页面内容。首页已设置标题,长度适中。当前首页面向常规搜索抓取开放。

主机和电子邮件

DNSAmazon Route 53
主机Fastly
IP 地理位置(推测,CDN 或代理可能与源站不同) United States 国旗United States 推测 185.199.108.153

域名登记事实

RDAP / WHOIS

注册商MarkMonitor Inc.
注册时间2013-03-08
到期时间2027-03-08
域名状态clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited、clientTransferProhibited https://icann.org/epp#clientTransferProhibited、clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
名称服务器dns1.p05.nsone.net、dns2.p05.nsone.net、dns3.p05.nsone.net、ns-1622.awsdns-10.co.uk、ns-692.awsdns-22.net
DNSSECunsigned

DNS 记录

DNS

类型名称值TTL优先级
Asquare.github.io185.199.108.1533600—
Asquare.github.io185.199.109.1533600—
Asquare.github.io185.199.110.1533600—
Asquare.github.io185.199.111.1533600—
AAAAsquare.github.io2606:50c0:8000::1533600—
AAAAsquare.github.io2606:50c0:8001::1533600—
AAAAsquare.github.io2606:50c0:8002::1533600—
AAAAsquare.github.io2606:50c0:8003::1533600—
NSgithub.iodns1.p05.nsone.net2751—
NSgithub.iodns2.p05.nsone.net2751—
NSgithub.iodns3.p05.nsone.net2751—
NSgithub.iodns4.p05.nsone.net2751—
NSgithub.ions-1339.awsdns-39.org2751—
NSgithub.ions-1622.awsdns-10.co.uk2751—
NSgithub.ions-393.awsdns-49.com2751—
NSgithub.ions-692.awsdns-22.net2751—
TXTgithub.iov=spf1 a -all3600—
CAAgithub.io0 issue "digicert.com"3600—
CAAgithub.io0 issue "letsencrypt.org"3600—
CAAgithub.io0 issue "sectigo.com"3600—
CAAgithub.io0 issuewild "digicert.com"3600—
CAAgithub.io0 issuewild "letsencrypt.org"3600—
CAAgithub.io0 issuewild "sectigo.com"3600—

TLS 与证书

TLS / SSL

定性结果配置正常
支持协议TLSv1.2、TLSv1.3
协商协议TLSv1.3
证书主题*.github.io
颁发者Let's Encrypt
有效期至2026-10-31T23:38 · 记录时剩余 29 天
验证事实证书信任:通过 · 域名匹配:通过

HTTP 响应标头

HTTP

标头值
content-typetext/html; charset=utf-8
cache-controlmax-age=600
serverGitHub.com
access-control-allow-origin*

已识别技术

Fastly

页面、搜索与分享信息

页面描述未检测到
规范链接未检测到
语言未知(默认)
Twitter Card未检测到

未知

未发现 robots.txt

暂未发现 Sitemaps

用户评价(0)

  • 暂无评价。