DevOps工具
【API】Open API 工具
Current OpenAPI Version
3.0.2 - Link to the specification
Security
通过探索OpenAPI规范,一些工具可以查找您可能没有注意到的攻击向量。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
API Contract Security Audit - 上传OpenAPI文件,获取包含已定位漏洞的详细报告,可能的攻击方案,补救方法。 | SaaS | ✅ | ❌ |
Converters
各种工具可以转换为OpenAPI标准。 适用于各种API格式。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Apimatic Transformer - 转换来自RAML,API Blueprint,OAI v2 / v3,WSDL等的API描述。 | SaaS | ✅ | ✅ | |
API Flow - 从多种格式转换为多种格式。 链接到菲尔的叉子因为原件完全坏了 | JavaScript | ✅ | ???? | |
Google Gnostic - 将OpenAPI描述编译为等效的 Protocol Buffer 表示 | Go | ✅ | ✅ | |
swagger2openapi - 将规格从OpenAPI v2.0升级到v3.0,捆绑到一个大型文件或尊重$ refs | Node.js | ✅ | ✅ | |
OAS RAML Converter -在OAS和RAML API规范之间进行转换 | Node.js | ✅ | ✅ | |
OData OpenAPI - OData 4.0 to OpenAPI 3.0.0 转换 | XSLT | ✅ | ✅ | |
OpenAPI Filter -从OpenAPI定义中过滤内部组件 | Node.js | ✅ | ✅ | |
OData.OpenAPI -将Edm(实体数据模型)转换为OpenApi 3.0 | .NET | ❌ | ✅ | |
pyswagger - Python中的客户端和转换器,类型安全,动态,规范兼容。 | Python | ✅ | ???? | |
odata2openapi - OData 4.0 to OpenAPI 2 转换 | Node.js | ✅ | ❌ | |
avantation - 从HAR生成OpenAPI 3.x规范。 | TypeScript | ❌ | ✅ | |
OpenAPI Generator -模板驱动的引擎,通过解析OpenAPI定义(社区驱动的swagger-codegen分支)生成不同语言的文档,API客户端和服务器存根 | Java | ✅ | ✅ | |
go-swagger -一切都在一个。 解析器,验证器,从代码生成规范,或从规范生成代码! | Go | ✅ | ???? |
Documentation
生成器可帮助构建基于各种格式和标准的API文档。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
APIMatic Developer Experience Portal - Customizable developer portals packed with language specific documentation, client libraries, code samples, an API console and much more. | SaaS | ✅ | ✅ | |
Kong Enterprise Edition - Highly customizable developer portal with developer onboarding, integrated with the Kong API Gateway | Lua | ✅ | ✅ | |
LucyBot DocGen - Generate a customizable website, with API documentation, console, and interactive workflows, from an OpenAPI spec | JavaScript | ✅ | ✅ | |
openapi-viewer - Browse and test a REST API described with the OpenAPI 3.0 Specification | Vue.js | ❌ | ✅ | |
openapi-ui - React based OpenAPI 3.0+ documentation generator | React.js | ❌ | ✅ | |
ReDoc - OpenAPI/Swagger-generated API Reference Documentation | React.js | ✅ | ✅ | |
widdershins - Generate Slate/Shins markdown from OpenAPI 2.0/3.0.x | Node.js | ✅ | ✅ | |
openapi3-generator - Use your API OpenAPI 3 definition to generate code, documentation, and literally anything you need. | Node.js | ❌ | ✅ | |
MrinDoc - Open API spec viewer. | Vue.JS | ✅ | ✅ | |
RapiDoc - Custom Element to view OpenAPI spec. | Custom Element | ✅ | ✅ | |
RapiPdf - Custom Element to generate PDF from OpenAPI spec. | Custom Element | ✅ | ✅ | |
Stoplight - Create beautiful, customizable, interactive API documentation generated from your OpenAPI Specification, integrated with the Stoplight platform | SaaS | ✅ | ✅ | |
Bump - Bump generates elegant documentations and changelogs from your OpenAPI specifications. Git diff, for your API. | SaaS | ✅ | ✅ |
Text Editors
文本编辑器,以帮助构建API文档。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
VSCode/OpenAPI (Swagger) editor - OpenAPI (Swagger) 2.0/3.0.x plugin for Visual Studio Code - new file templates, navigation, intellisense, code snippets | Any | ✅ | ✅ | |
KaiZen-OpenAPI-Editor - Full-featured Eclipse editor for OpenAPI 2.0 and 3.0, also available on Eclipse Marketplace. | Java | ✅ | ✅ | |
Atom/linter-swagger - This plugin for Atom Linter will lint Swagger 2.0 specifications or OpenAPI 3.0, both JSON and YAML using swagger-parser node package. | JavaScript | ✅ | ✅ | |
Swagger Editor - Design, describe, and document your API on the first open source editor fully dedicated to OpenAPI-based APIs. | Node.js | ✅ | ✅ | |
SwaggerHub - API design and documentation platform to improve collaboration, standardize development workflow and centralize their API discovery and consumption. | SaaS/On-Premise NodeJS | ✅ | ✅ | |
Senya Editor - Design API specifications fast and effectively in your favorite JetBrains IDE. | Java | ✅ | ✅ | |
VSCode/openapi-lint - OpenAPI (Swagger) 2.0/3.0.x intellisense, validator and linter for Visual Studio Code | Node.js | ✅ | ✅ |
GUI Editors
Visual editors to help build API docs.
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
RepreZen API Studio - RepreZen API Studio is an integrated workbench that brings API-first design into focus for your whole team, harmonizes your API designs, and generates APIs that click into client apps. | Java | ✅ | ✅ | |
Apicurio Studio - A standalone API design studio that can be used to create new or edit existing API designs. | TypeScript | ✅ | ✅ | |
Stoplight - Stoplight is the Complete OpenAPI Specification Toolkit that leverages your OpenAPI documents to drive the entire API development process | SaaS | ✅ | ???? | |
OpenAPI-GUI - OpenAPI-GUI is a GUI for creating and editing OpenAPI version 3.0.x JSON/YAML definitions. | JavaScript | ❌ | ???? |
Mock Servers
加速API测试和开发的服务和平台。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Connexion - OpenAPI First framework for Python on top of Flask with automatic endpoint validation & OAuth2 support | Python | ✅ | ✅ | |
Prism - Turn any OAI file into an API server with mocking, transformations, validations, and more. | cli | ✅ | ✅ | |
Sandbox - SaaS, self-hosted, or CLI tool for turning OpenAPI (and other) definitions into a mock server, where you can modify behaviour, simulate downtime, and any other nonsnese you can think of thanks to a built-in code editor! | SaaS / Java | ✅ | ???? | |
Microcks - Mocking and testing platform for API and microservices. Turn your OAI contract examples into ready to use mocks. Use examples to test and validate implementations according schema elements. | Self-hosted / SaaS | ✅ | ✅ | |
API Sprout - Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation | cli / Docker | ❌ | ✅ | |
MockLab - SaaS platform to upload your spec to create a mock server | SaaS | ✅ | ✅ | |
Fakeit - Create mock server from OpenAPI 3 specification with random response generation and request validation. | cli / Docker | ❌ | ✅ |
Server implementations
轻松创建和实现API的资源和路由。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Vert.x Web Api Contract - Create API endpoints with Vert.x 3 and OpenAPI 3 with automatic requests validation | Java, Kotlin, JavaScript, Groovy, Ruby, Ceylon & Scala | ❌ | ✅ | |
BaucisJS + baucis-openapi3 - Create REST resources with persistence on MongoDB and expose OpenAPI v.3 contracts | JavaScript | ❌ | ✅ | |
BaucisJS + baucis-swagger2 - Create REST resources with persistence on MongoDB and expose OpenAPI v.2 contracts | JavaScript | ✅ | ❌ | |
@smartrecruiters/openapi-first - Initializes your API express application with specification in OpenAPI Specification 3.0 format using provided middlewares (parsers, validators, controller, defaults setting) or custom ones | Node.js | ❌ | ✅ | |
openapi-backend - Build, Validate, Route, and Mock using OpenAPI specification. Framework-agnostic | Node.js | ❌ | ✅ | |
OpenAPI Enforcer Middleware - An express middleware that makes it easy to write web services that follow an Open API specification by leveraging the tools provided in the openapi-enforcer package. | Node.js | ✅ | ✅ | |
MicroTS - Code generator - from OpenAPI specification generates TypeScript project with Docker. | Node.js | ✅ | ✅ | |
API Platform - REST and GraphQL framework to build modern API-driven projects | PHP | ✅ | ✅ | |
Mojolicious::Plugin::OpenApi - Mojolicious::Plugin::OpenAPI is a plugin for Mojolicious framework that add routes and input/output validation to your Mojolicious application based on a OpenAPI (Swagger) specification. Currently v2 is very well supported, while v3 should be considered EXPERIMENTAL. | Perl | ✅ | ✅ | |
Fusio - Open source API management platform | PHP | ❌ | ✅ |
Miscellaneous
用于加载文档和解析引用的工具。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
OpenAPI Server Code Generator (oapi-codegen) - Generate a web service using the [Echo](https://github.com/labstack/echo) framework from an Open API v3 specification | Go | ❌ | ✅ | |
Sway - A library that simplifies OpenAPI integrations/tooling. | JavaScript | ✅ | ???? | |
openapi-diff - Utility for comparing two OpenAPI specifications. | Java | ❌ | ✅ | |
$ oas (CLI) - Generate OAS files from code comments and easily host them ($ npm install oas -g) | JavaScript | ✅ | ✅ |
Parsers
在验证规范和文档时,在版本之间序列化和迁移API文档。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
swagger-parser - OpenAPI Specification parser which is still using the name "Swagger' because they're stubborn. New versions are v3 only, older versions support v1.x/v2. | Java | ✅ | ✅ | |
BigstickCarpet/swagger-parser - Swagger/OpenAPI 2.0 and 3.0 parser and validator. Can also bundle multiple files into one via `$ref`. | Node.js | ✅ | ✅ | |
KaiZen OpenAPI Parser - High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x | Java | ❌ | ✅ | |
OpenAPI-TS - TS Model & utils for OpenAPI 3.0.x contracts | TypeScript | ❌ | ✅ | |
kin-openapi - A Go library for handling OpenAPI 3.0 specifications | Go | ❌ | ✅ | |
php-openapi - A PHP library for handling OpenAPI 3.0 specifications | PHP | ❌ | ✅ | |
Object Oriented OpenAPI Specification - An object oriented approach to generating OpenAPI specs, implemented in PHP | PHP | ❌ | ✅ | |
OpenAPI3-Rust - Rust serialization library for OpenAPI v3 | Rust | ❌ | ✅ | |
psx-api - Parse and generate API specification formats | PHP | ✅ | ✅ | |
Microsoft/OpenAPI.NET - C# based parser with definition validation and migration support from V2 | .NET | ✅ | ✅ | |
oas_parser - A Ruby parser for Open API Spec 3.0+ definitions. | Ruby | ❌ | ✅ | |
openapi3 - An OpenAPI 3 Specification client, and validator, covering both schema validation and limited data validation for Python 3. | Python | ❌ | ✅ | |
Spot - A concise, developer-friendly way to describe your API contract. | TypeScript | ✅ | ✅ |
Schema Validators
使用这些工具快速轻松地验证API架构。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Speccy - Lint to enforce quality rules on your OpenAPI specifications | CLI | ❌ | ✅ | |
BigstickCarpet/swagger-cli - A handy cli tool for validating JSON or YAML files schema files that respects $ref | Node.js / CLI | ✅ | ✅ | |
openapi-spec-validator - OpenAPI Spec validator | Python | ✅ | ✅ | |
Sway - A library that simplifies OpenAPI integrations/tooling. | JavaScript | ✅ | ???? | |
oval - CLI for (O)penAPI Specification document (val)idation. | JavaScript | ✅ | ???? | |
Spectral - A flexible JSON object linter with out of the box support for OpenAPI Specification | TypeScript/JavaScript | ✅ | ✅ | |
OpenAPI Enforcer - Tool to 1) Validate your OAS document, 2) serialize, deserialize, and validate incoming requests and outgoing responses, 3) simplify response building, and 4) producing mock data. Exensible via plugins. | Node.js | ✅ | ✅ | |
php-openapi - A PHP library for handling OpenAPI 3.0 specifications | PHP | ❌ | ✅ |
Data Validators
帮助您验证API数据的工具。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Sway - A library that simplifies OpenAPI integrations/tooling. | JavaScript | ✅ | ???? | |
Openapi validator - Library that checks response against Openapi schema, based on request path and method | PHP | ❌ | ✅ | |
express-ajv-swagger-validation - Express middleware which validates request body, headers, path parameters and query parameters according to the OpenAPI Specification | Node.js | ✅ | ✅ | |
committee - Validation middleware for Rack server. This gem validates request and response using OpenAPI Specification. And convert parameter string to specific Ruby object (e.g. convert datetime string to DateTime class). | Ruby | ✅ | ✅ | |
OpenAPI Enforcer - Tool to 1) Validate your OAS document, 2) serialize, deserialize, and validate incoming requests and outgoing responses, 3) simplify response building, and 4) producing mock data. Exensible via plugins. | Node.js | ✅ | ✅ | |
OpenAPI Validation Middleware - a PSR-7 and PSR-15 middleware to validate requests and responses against your OpenAPI spec | PHP | ❌ | ✅ | |
kin-openapi - A Go library for handling OpenAPI 3.0 specifications | Go | ❌ | ✅ | |
openapi-psr7-validator - It validates PSR-7 messages against OpenAPI specifications | PHP | ❌ | ✅ |
Testing
快速执行API请求并通过命令行或GUI界面动态验证响应。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
Dredd - Language-agnostic command-line tool for validating API description document against backend implementation of the API | Javascript | ✅ | ✅ | |
Openapi validator - Library that checks response against Openapi schema, based on request path and method | PHP | ❌ | ✅ | |
OpenAPI Enforcer - Tool to 1) Validate your OAS document, 2) serialize, deserialize, and validate incoming requests and outgoing responses, 3) simplify response building, and 4) producing mock data. Exensible via plugins. | Node.js | ✅ | ✅ | |
Chai OpenAPI Response Validator - Simple Chai support for asserting that HTTP responses satisfy an OpenAPI spec. | Node.js | ✅ | ✅ | |
hikaku - A library that tests if the implementation of a REST-API meets its specification. | Kotlin | ❌ | ✅ | |
Swagger Inspector - Swagger Inspector is a free online tool to quickly execute any API request, validate its responses and generate a corresponding OpenAPI definition. | Self-hosted/SaaS | ✅ | ✅ | |
Assertible - Import an OpenAPI specification into Assertible to generate tests that validate JSONSchema responses and status codes on every endpoint. | SaaS | ✅ | ✅ |
SDK Generators
通过创建SDK快速生成文档,描述和客户端。
Name | Language | v2 | v3 | GitHub |
---|---|---|---|---|
OpenAPI Generator - A template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI definition (community-driven fork of swagger-codegen) | Java | ✅ | ✅ | |
APIMatic CodeGen - Bring in your API description (OAI v2/v3, RAML, API Blueprint, WSDL, etc.) to generate fully functional SDKs in over 10 languages. | SaaS | ✅ | ✅ | |
janephp/open-api - Generate a PHP Client API (PSR7 compatible) given a OpenAPI specification. | PHP | ✅ | ✅ | |
go-swagger - Everything all in one. Parser, validator, generates spec from code, or code from spec! | Go | ✅ | ???? | |
guardrail - Principled code generation from OpenAPI Specifications | Scala, Java, ... | ✅ | ✅ |
- 595 次浏览
【Go精选】精选的Go框架,库和软件的精选列表
A curated list of awesome Go frameworks, libraries and software https://awesome-go.com/
Contents
-
- Audio and Music
- Authentication and OAuth
- Bot Building
- Command Line
- Configuration
- Continuous Integration
- CSS Preprocessors
- Data Structures
- Database
- Database Drivers
- Date and Time
- Distributed Systems
- Embeddable Scripting Languages
- Error Handling
- Files
- Financial
- Forms
- Functional
- Game Development
- Generation and Generics
- Geographic
- Go Compilers
- Goroutines
- GUI
- Hardware
- Images
- IoT
- Job Scheduler
- JSON
- Logging
- Machine Learning
- Messaging
- Microsoft Office
- Miscellaneous
- Natural Language Processing
- Networking
- OpenGL
- ORM
- Package Management
- Performance
- Query Language
- Resource Embedding
- Science and Data Analysis
- Security
- Serialization
- Stream Processing
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- UUID
- Validation
- Version Control
- Video
- Web Frameworks
- Windows
- XML
Audio and Music
Libraries for manipulating audio.
- EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF).
- flac - No-frills native Go FLAC decoder that decodes FLAC files into byte slices.
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- go-sox - libsox bindings for go.
- go_mediainfo - libmediainfo bindings for go.
- gosamplerate - libsamplerate bindings for go.
- id3v2 - Fast and stable ID3 parsing and writing library for Go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- mix - Sequence-based Go-native audio mixer for music apps.
- mp3 - Native Go MP3 decoder.
- music-theory - Music theory models in Go.
- Oto - A low-level library to play sound on multiple platforms.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- portmidi - Go bindings for PortMidi.
- taglib - Go bindings for taglib.
- vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies).
- waveform - Go package capable of generating waveform images from audio streams.
Authentication and OAuth
Libraries for implementing authentications schemes.
- authboss - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time.
- branca - Golang implementation of Branca Tokens.
- casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
- cookiestxt - provides parser of cookies.txt file format.
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
- go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang.
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers.
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang.
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.
- httpauth - HTTP Authentication middleware.
- jeff - Simple, flexible, secure and idiomatic web session management with pluggable backends.
- jwt - Clean and easy to use implementation of JSON Web Tokens (JWT).
- jwt - Lightweight JSON Web Token (JWT) library.
- jwt-auth - JWT middleware for Golang http servers with many configuration options.
- jwt-go - Golang implementation of JSON Web Tokens (JWT).
- loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam.
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.
- osin - Golang OAuth2 server library.
- paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO).
- permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt.
- rbac - Minimalistic RBAC package for Go applications.
- scs - Session Manager for HTTP servers.
- securecookie - Efficient secure cookie encoding/decoding.
- session - Go session management for web servers (including support for Google App Engine - GAE).
- sessiongate-go - Go session management using the SessionGate Redis module.
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
- signedvalue - Signed and timestamped strings compatible with Tornado's
create_signed_value
,decode_signed_value
, and thereforeset_secure_cookie
andget_secure_cookie
. - sjwt - Simple jwt generator and parser.
Bot Building
Libraries for building and working with bots.
- go-chat-bot - IRC, Slack & Telegram bot written in Go.
- go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more.
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.
- govkbot - Simple Go VK bot library.
- hanu - Framework for writing Slack bots.
- Kelp - official trading and market-making bot for the Stellar DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies.
- margelet - Framework for building Telegram bots.
- micha - Go Library for Telegram bot api.
- slacker - Easy to use framework to create Slack bots.
- slackscot - Another framework for building Slack bots.
- tbot - Telegram bot server with API similar to net/http.
- telebot - Telegram bot framework written in Go.
- telegram-bot-api - Simple and clean Telegram bot client.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
Command Line
Standard CLI
Libraries for building standard or basic Command Line applications.
- argparse - Command line argument parser inspired by Python's argparse module.
- argv - Go library to split command line string as arguments array using the bash syntax.
- cli - Feature-rich and easy to use command-line package based on golang struct tags.
- cli - Simple and complete API for building command line interfaces in Go.
- cli-init - The easy way to start building Golang command line applications.
- climax - Alternative CLI with "human face", in spirit of Go command.
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library.
- cobra - Commander for modern Go CLI interactions.
- commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags.
- complete - Write bash completions in Go + Go command bash completion.
- docopt.go - Command-line arguments parser that will make you smile.
- env - Tag-based environment configuration for structs.
- flag - Simple but powerful command line option parsing library for Go supporting subcommand.
- flaggy - A robust and idiomatic flags package with excellent subcommand support.
- flagvar - A collection of flag argument types for Go's standard
flag
package. - go-arg - Struct-based argument parsing in Go.
- go-commander - Go library to simplify CLI workflow.
- go-flags - go command line option parser.
- go-getoptions - Go option parser inspired on the flexibility of Perl’s GetOpt::Long.
- gocmd - Go library for building command line applications.
- hiboot cli - cli application framework with auto configuration and dependency injection.
- job - JOB, make your short-term command as a long-term job.
- kingpin - Command line and flag parser supporting sub commands.
- liner - Go readline-like library for command-line interfaces.
- mitchellh/cli - Go library for implementing command-line interfaces.
- mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation.
- ops - Unikernel Builder/Orchestrator.
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
- readline - Pure golang implementation that provides most features in GNU-Readline under MIT license.
- sand - Simple API for creating interpreters and so much more.
- sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries.
- strumt - Library to create prompt chain.
- ts - Timestamp convert & compare tool.
- ukautz/clif - Small command line interface framework.
- urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).
- wlog - Simple logging interface that supports cross-platform color and concurrency.
- wmenu - Easy to use menu structure for cli applications that prompts users to make choices.
Advanced Console UIs
Libraries for building Console Applications and Console User Interfaces.
- asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
- aurora - ANSI terminal colors that supports fmt.Printf/Sprintf.
- cfmt - Contextual fmt inspired by bootstrap color classes.
- chalk - Intuitive package for prettifying terminal/console output.
- color - Versatile package for colored terminal output.
- colourize - Go library for ANSI colour text in terminals.
- ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method.
- go-ataman - Go library for rendering ANSI colored text templates in terminals.
- go-colorable - Colorable writer for windows.
- go-colortext - Go library for color output in terminals.
- go-isatty - isatty for golang.
- go-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit.
- gocui - Minimalist Go library aimed at creating Console User Interfaces.
- gommon/color - Style terminal text.
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.
- mpb - Multi progress bar for terminal applications.
- progressbar - Basic thread-safe progress bar that works in every OS.
- simpletable - Simple tables in terminal with Go.
- tabby - A tiny library for super simple Golang tables.
- tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces.
- termdash - Go terminal dashboard based on termbox-go and inspired by termui.
- termtables - Go port of the Ruby library terminal-tables for simple ASCII table generation as well as providing markdown and HTML output.
- termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib.
- uilive - Library for updating terminal output in realtime.
- uiprogress - Flexible library to render progress bars in terminal applications.
- uitable - Library to improve readability in terminal apps using tabular data.
Configuration
Libraries for configuration parsing.
- config - Cloud native application configuration. Bind ENV to structs in only two lines.
- config - JSON or YAML configuration wrapper with environment variables and flags parsing.
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables.
- confita - Load configuration in cascade from multiple backends into a struct.
- conflate - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema.
- env - Parse environment variables to Go structs (with defaults).
- envcfg - Un-marshaling environment variables to Go structs.
- envconf - Configuration from environment.
- envconfig - Read your configuration from environment variables.
- envh - Helpers to manage environment variables.
- gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections.
- go-up - A simple configuration library with recursive placeholders resolution and no magic.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from
.env
). - gofigure - Go application configuration made easy.
- gone/jconf - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.
- harvester - Harvester, a easy to use static and dynamic configuration package supportig seeding, env vars and Consul integration.
- hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
- ingo - Flags persisted in an ini-like config file.
- ini - Go package to read and write INI files.
- joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
- kelseyhightower/envconfig - Go library for managing configuration data from environment variables.
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.
- konfig - Composable, observable and performant config handling for Go for the distributed processing era.
- mini - Golang package for parsing ini-style configuration files.
- sprbox - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars).
- store - Lightweight configuration manager for Go.
- viper - Go configuration with fangs.
- xdg - Cross platform package that follows the XDG Standard.
Continuous Integration
Tools for help with continuous integration.
- drone - Drone is a Continuous Integration platform built on Docker, written in Go.
- duci - A simple ci server no needs domain specific languages.
- gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace.
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
- overalls - Multi-Package go project coverprofile for tools like goveralls.
- roveralls - Recursive coverage testing tool.
CSS Preprocessors
Libraries for preprocessing CSS files.
- gcss - Pure Go CSS Preprocessor.
- go-libsass - Go wrapper to the 100% Sass compatible libsass project.
Data Structures
Generic datastructures and algorithms in Go.
- algorithms - Algorithms and data structures.CLRS study.
- binpacker - Binary packer and unpacker helps user build custom binary stream.
- bit - Golang set data structure with bonus bit-twiddling functions.
- bitset - Go package implementing bitsets.
- bloom - Bloom filters implemented in Go.
- bloom - Golang Bloom filter implementation.
- boomfilters - Probabilistic data structures for processing continuous, unbounded streams.
- concurrent-writer - Highly concurrent drop-in replacement for
bufio.Writer
. - conjungo - A small, powerful and flexible merge library.
- count-min-log - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).
- crunch - Go package implementing buffers for handling various datatypes easily.
- cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.
- deque - A highly optimized double-ended queue.
- deque - Fast ring-buffer deque (double-ended queue).
- dict - Python-like dictionaries (dict) for Go.
- encoding - Integer Compression Libraries for Go.
- go-adaptive-radix-tree - Go implementation of Adaptive Radix Tree.
- go-datastructures - Collection of useful, performant, and thread-safe data structures.
- go-ef - A Go implementation of the Elias-Fano encoding.
- go-geoindex - In-memory geo index.
- go-mcache - Fast in-memory key:value store/cache library. Pointer caches.
- go-rquad - Region quadtrees with efficient point location and neighbour finding.
- goconcurrentqueue - Concurrent FIFO queue.
- gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
- golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
- goset - A useful Set collection implementation for Go.
- goskiplist - Skip list implementation in Go.
- gota - Implementation of dataframes, series, and data wrangling methods for Go.
- hide - ID type with marshalling to/from hash to prevent sending IDs to clients.
- hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
- hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
- levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.
- levenshtein - Implementation to calculate levenshtein distance in Go.
- mafsa - MA-FSA implementation with Minimal Perfect Hashing.
- merkletree - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures.
- mspm - Multi-String Pattern Matching Algorithm for information retrieval.
- null - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
- parsefields - Tools for parse JSON-like logs for collecting unique fields and events.
- pipeline - An implementation of pipelines with fan-in and fan-out.
- ptrie - An implementation of prefix tree.
- ring - Go implementation of a high performance, thread safe bloom filter.
- roaring - Go package implementing compressed bitsets.
- set - Simple set data structure implementation in Go using LinkedHashMap.
- skiplist - Very fast Go Skiplist implementation.
- skiplist - Skiplist implementation in Go.
- timedmap - Map with expiring key-value pairs.
- treap - Persistent, fast ordered map using tree heaps.
- trie - Trie implementation in Go.
- ttlcache - In-memory LRU string-interface{} map with expiration for golang.
- typ - Null Types, Safe primitive type conversion and fetching value from complex structures.
- willf/bloom - Go package implementing Bloom filters.
Database
Databases implemented in Go.
- badger - Fast key-value store in Go.
- bcache - Eventually consistent distributed in-memory cache Go library.
- BigCache - Efficient key/value cache for gigabytes of data.
- bolt - Low-level key/value database for Go.
- buntdb - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.
- cache - In-memory key:value store with expiration time, 0 dependencies, <100 LoC, 100% coverage.
- cache2go - In-memory key:value cache which supports automatic invalidation based on timeouts.
- clusteredBigCache - BigCache with clustering support and individual item expiration.
- cockroach - Scalable, Geo-Replicated, Transactional Datastore.
- couchcache - RESTful caching micro-service backed by Couchbase server.
- CovenantSQL - CovenantSQL is a SQL database on blockchain.
- dgraph - Scalable, Distributed, Low Latency, High Throughput Graph Database.
- diskv - Home-grown disk-backed key-value store.
- eliasdb - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language.
- fastcache - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead.
- GCache - Cache library with support for expirable Cache, LFU, LRU and ARC.
- go-cache - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
- goleveldb - Implementation of the LevelDB key/value database in Go.
- gorocksdb - Gorocksdb is a wrapper for RocksDB written in Go.
- groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
- influxdb - Scalable datastore for metrics, events, and real-time analytics.
- ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
- levigo - Levigo is a Go wrapper for LevelDB.
- moss - Moss is a simple LSM key-value storage engine written in 100% Go.
- nutsdb - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
- piladb - Lightweight RESTful database engine based on stack data structures.
- prometheus - Monitoring system and time series database.
- pudge - Fast and simple key/value store written using Go's standard library.
- rqlite - The lightweight, distributed, relational database built on SQLite.
- Scribble - Tiny flat file JSON store.
- slowpoke - Key-value store with persistence.
- tempdb - Key-value store for temporary items.
- tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1.
- tiedot - Your NoSQL database powered by Golang.
- Vasto - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption.
- VictoriaMetrics - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL.
Database schema migration.
- avro - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes.
- darwin - Database schema evolution library for Go.
- go-fixtures - Django style fixtures for Golang's excellent built-in database/sql library.
- go-pg-migrations - A Go package to help write migrations with go-pg/pg.
- gondolier - Database migration library using struct decorators.
- goose - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts.
- gormigrate - Database schema migration helper for Gorm ORM.
- migrate - Database migrations. CLI and Golang library.
- migrator - Dead simple Go database migration library.
- pravasan - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc.
- soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
- sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata.
Database tools.
- chproxy - HTTP proxy for ClickHouse database.
- clickhouse-bulk - Collects small insterts and sends big requests to ClickHouse servers.
- datagen - A fast data generator that's multi-table aware and supports multi-row DML.
- dbbench - Database benchmarking tool with support for several databases and scripts.
- go-mysql - Go toolset to handle MySQL protocol and replication.
- go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
- kingshard - kingshard is a high performance proxy for MySQL powered by Golang.
- myreplication - MySql binary log replication listener. Supports statement and row based replication.
- octillery - Go package for sharding databases ( Supports every ORM or raw SQL ).
- orchestrator - MySQL replication topology manager & visualizer.
- pgweb - Web-based PostgreSQL database browser.
- prep - Use prepared SQL statements without changing your code.
- pREST - Serve a RESTful API from any PostgreSQL database.
- rwdb - rwdb provides read replica capability for multiple database servers setup.
- vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
SQL query builder, libraries for building and using SQL.
- dbq - Zero boilerplate database operations for Go.
- Dotsql - Go library that helps you keep sql files in one place and use them with ease.
- gendry - Non-invasive SQL builder and powerful data binder.
- godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily.
- goqu - Idiomatic SQL builder and query library.
- igor - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax.
- ormlite - Lightweight package containing some ORM-like features and helpers for sqlite databases.
- ozzo-dbx - Powerful data retrieval methods as well as DB-agnostic query building capabilities.
- scaneo - Generate Go code to convert database rows into arbitrary structs.
- sqrl - SQL query builder, fork of Squirrel with improved performance.
- Squalus - Thin layer over the Go SQL package that makes it easier to perform queries.
- Squirrel - Go library that helps you build SQL queries.
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
Database Drivers
Libraries for connecting and operating databases.
-
Relational Databases
- avatica - Apache Avatica/Phoenix SQL driver for database/sql.
- bgc - Datastore Connectivity for BigQuery for go.
- firebirdsql - Firebird RDBMS SQL driver for Go.
- go-adodb - Microsoft ActiveX Object DataBase driver for go that uses database/sql.
- go-mssqldb - Microsoft MSSQL driver for Go.
- go-oci8 - Oracle driver for go that uses database/sql.
- go-sql-driver/mysql - MySQL driver for Go.
- go-sqlite3 - SQLite3 driver for go that uses database/sql.
- gofreetds - Microsoft MSSQL driver. Go wrapper over FreeTDS.
- goracle - Oracle driver for Go, using the ODPI-C driver.
- pgx - PostgreSQL driver supporting features beyond those exposed by database/sql.
- pq - Pure Go Postgres driver for database/sql.
-
NoSQL Databases
- aerospike-client-go - Aerospike client in Go language.
- arangolite - Lightweight golang driver for ArangoDB.
- asc - Datastore Connectivity for Aerospike for go.
- dynago - Dynago is a principle of least surprise client for DynamoDB.
- forestdb - Go bindings for ForestDB.
- go-couchbase - Couchbase client in Go.
- go-couchdb - Yet another CouchDB HTTP API wrapper for Go.
- go-pilosa - Go client library for Pilosa.
- go-rejson - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease.
- gocb - Official Couchbase Go SDK.
- gocql - Go language driver for Apache Cassandra.
- godis - redis client implement by golang, inspired by jedis.
- godscache - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached.
- gomemcache - memcache client library for the Go programming language.
- gorethink - Go language driver for RethinkDB.
- goriak - Go language driver for Riak KV.
- mgo - (unmaintained) MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms.
- mongo-go-driver - Official MongoDB driver for the Go language.
- neo4j - Neo4j Rest API Bindings for Golang.
- Neo4j-GO - Neo4j REST Client in golang.
- neoism - Neo4j client for Golang.
- redeo - Redis-protocol compatible TCP servers/services.
- redigo - Redigo is a Go client for the Redis database.
- redis - Redis client for Golang.
- xredis - Typesafe, customizable, clean & easy to use Redis client.
-
Search and Analytic Databases.
- bleve - Modern text indexing library for go.
- elastic - Elasticsearch client for Go.
- elasticsql - Convert sql to elasticsearch dsl in Go.
- elastigo - Elasticsearch client library.
- go-elasticsearch - Official Elasticsearch client for Go.
- goes - Library to interact with Elasticsearch.
- riot - Go Open Source, Distributed, Simple and efficient Search Engine.
- skizze - probabilistic data-structures service and storage.
-
Multiple Backends.
- cachego - Golang Cache component for multiple drivers.
- cayley - Graph database with support for multiple backends.
- dsc - Datastore connectivity for SQL, NoSQL, structured files.
- gokv - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more).
Date and Time
Libraries for working with dates and times.
- carbon - Simple Time extension with a lot of util methods, ported from PHP Carbon library.
- date - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day.
- dateparse - Parse date's without knowing format in advance.
- durafmt - Time duration formatting library for Go.
- feiertage - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving...
- go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang).
- go-sunrise - Calculate the sunrise and sunset times for a given location.
- goweek - Library for working with week entity in golang.
- iso8601 - Efficiently parse ISO8601 date-times without regex.
- kair - Date and Time - Golang Formatting Library.
- now - Now is a time toolkit for golang.
- NullTime - Nullable
time.Time
. - strftime - C99-compatible strftime formatter.
- timespan - For interacting with intervals of time, defined as a start time and a duration.
- timeutil - Useful extensions (Timedelta, Strftime, ...) to the golang's time package.
- tuesday - Ruby-compatible Strftime function.
Distributed Systems
Packages that help with building Distributed Systems.
- celeriac - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go.
- consistent - Consistent hashing with bounded loads.
- dht - BitTorrent Kademlia DHT implementation.
- digota - grpc ecommerce microservice.
- dot - distributed sync using operational transformation/OT.
- doublejump - A revamped Google's jump consistent hash.
- dragonboat - A feature complete and high performance multi-group Raft library in Go.
- drmaa - Job submission library for cluster schedulers based on the DRMAA standard.
- dynamolock - DynamoDB-backed distributed locking implementation.
- dynatomic - A library for using DynamoDB as an atomic counter.
- emitter-io - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love.
- flowgraph - flow-based programming package.
- gleam - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed.
- glow - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go.
- go-health - Library for enabling asynchronous dependency health checks in your service.
- go-jump - Port of Google's "Jump" Consistent Hash function.
- go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
- gorpc - Simple, fast and scalable RPC library for high load.
- grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC.
- hprose - Very newbility RPC Library, support 25+ languages now.
- jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0.
- jsonrpc - JSON-RPC 2.0 HTTP client implementation.
- KrakenD - Ultra performant API Gateway framework with middlewares.
- micro - Pluggable microservice toolkit and distributed systems platform.
- NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
- outboxer - Outboxer is a go library that implements the outbox pattern.
- pglock - PostgreSQL-backed distributed locking implementation.
- raft - Golang implementation of the Raft consensus protocol, by HashiCorp.
- raft - Go implementation of the Raft consensus protocol, by CoreOS.
- redis-lock - Simplified distributed locking implementation using Redis.
- resgate - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.
- ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications.
- rpcx - Distributed pluggable RPC service framework like alibaba Dubbo.
- sleuth - Library for master-less p2p auto-discovery and RPC between HTTP services (using ZeroMQ).
- tendermint - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols.
- torrent - BitTorrent client package.
Libraries and tools that implement email creation and sending.
- chasquid - SMTP server written in Go.
- douceur - CSS inliner for your HTML emails.
- email - A robust and flexible email library for Go.
- go-dkim - DKIM library, to sign & verify email.
- go-imap - IMAP library for clients and servers.
- go-message - Streaming library for the Internet Message Format and mail messages.
- go-premailer - Inline styling for HTML mail in Go.
- Gomail - Gomail is a very simple and powerful package to send emails.
- Hectane - Lightweight SMTP client providing an HTTP API.
- hermes - Golang package that generates clean, responsive HTML e-mails.
- MailHog - Email and SMTP testing with web and API interface.
- SendGrid - SendGrid's Go library for sending email.
- smtp - SMTP server protocol state machine.
Embeddable Scripting Languages
Embedding other languages inside your go code.
- agora - Dynamically typed, embeddable programming language in Go.
- anko - Scriptable interpreter written in Go.
- binder - Go to Lua binding library, based on gopher-lua.
- expr - an engine that can evaluate expressions.
- gentee - Embeddable scripting programming language.
- gisp - Simple LISP in Go.
- go-duktape - Duktape JavaScript engine bindings for Go.
- go-lua - Port of the Lua 5.2 VM to pure Go.
- go-php - PHP bindings for Go.
- go-python - naive go bindings to the CPython C-API.
- golua - Go bindings for Lua C API.
- gopher-lua - Lua 5.1 VM and compiler written in Go.
- gval - A highly customizable expression language written in Go.
- ngaro - Embeddable Ngaro VM implementation enabling scripting in Retro.
- otto - JavaScript interpreter written in Go.
- purl - Perl 5.18.2 embedded in Go.
- tengo - Bytecode compiled script language for Go.
Error Handling
Libraries for handling errors.
- errlog - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place.
- errors - Package that provides simple error handling primitives.
- errorx - A feature rich error package with stack traces, composition of errors and more.
- go-multierror - Go (golang) package for representing a list of errors as a single error.
- tracerr - Golang errors with stack trace and source fragments.
- werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.
Files
Libraries for handling files and file systems.
- afero - FileSystem Abstraction System for Go.
- checksum - Compute message digest, like MD5 and SHA256, for large files.
- flop - File operations library which aims to mirror feature parity with GNU cp.
- go-csv-tag - Load csv file using tag.
- go-decent-copy - Copy files for humans.
- go-exiftool - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...).
- go-gtfs - Load gtfs files in go.
- notify - File system event notification library with simple API, similar to os/signal.
- opc - Load Open Packaging Conventions (OPC) files for Go.
- pdfcpu - PDF processor.
- skywalker - Package to allow one to concurrently go through a filesystem with ease.
- stl - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.
- tarfs - Implementation of the
FileSystem
interface for tar files. - vfs - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS.
Financial
Packages for accounting and finance.
- accounting - money and currency formatting for golang.
- currency - High performant & accurate currency computation package.
- decimal - Arbitrary-precision fixed-point decimal numbers.
- go-finance - Comprehensive financial markets data in Go.
- go-finance - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations.
- go-money - Implementation of Fowler's Money pattern.
- ofxgo - Query OFX servers and/or parse the responses (with example command-line client).
- orderbook - Matching Engine for Limit Order Book in Golang.
- techan - Technical analysis library with advanced market analysis and trading strategies.
- transaction - Embedded transactional database of accounts, running in multithreaded mode.
- vat - VAT number validation & EU VAT rates.
Forms
Libraries for working with forms.
- bind - Bind form data to any Go values.
- binding - Binds form and JSON data from net/http Request to struct.
- conform - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags.
- form - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support.
- formam - decode form's values into a struct.
- forms - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files.
- gorilla/csrf - CSRF protection for Go web applications & services.
- nosurf - CSRF protection middleware for Go.
Functional
Packages to support functional programming in Go.
- fpGo - Monad, Functional Programming features for Golang.
- fuego - Functional Experiment in Go.
- go-underscore - Useful collection of helpfully functional Go collection utilities.
Game Development
Awesome game development libraries.
- Azul3D - 3D game engine written in Go.
- Ebiten - dead simple 2D game library in Go.
- engo - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm.
- g3n - Go 3D Game Engine.
- GarageEngine - 2d game engine written in Go working on OpenGL.
- glop - Glop (Game Library Of Power) is a fairly simple cross-platform game library.
- go-astar - Go implementation of the A* path finding algorithm.
- go-collada - Go package for working with the Collada file format.
- go-sdl2 - Go bindings for the Simple DirectMedia Layer.
- go3d - Performance oriented 2D/3D math package for Go.
- gonet - Game server skeleton implemented with golang.
- goworld - Scalable game server engine, featuring space-entity framework and hot-swapping.
- Leaf - Lightweight game server framework.
- nano - Lightweight, facility, high performance golang based game server framework.
- Oak - Pure Go game engine.
- Pitaya - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK.
- Pixel - Hand-crafted 2D game library in Go.
- raylib-go - Go bindings for raylib, a simple and easy-to-use library to learn videogames programming.
- termloop - Terminal-based game engine for Go, built on top of Termbox.
Generation and Generics
Tools to enhance the language with features like generics via code generation.
- efaceconv - Code generation tool for high performance conversion from interface{} to immutable type without allocations.
- gen - Code generation tool for ‘generics’-like functionality.
- generis - Code generation tool providing generics, free-form macros, conditional compilation and HTML templating.
- go-enum - Code generation for enums from code comments.
- go-linq - .NET LINQ-like query methods for Go.
- goderive - Derives functions from input types.
- gotype - Golang source code parsing, usage like reflect package.
- GoWrap - Generate decorators for Go interfaces using simple templates.
- interfaces - Command line tool for generating interface definitions.
- jennifer - Generate arbitrary Go code without templates.
- pkgreflect - Go preprocessor for package scoped reflection.
Geographic
Geographic tools and servers
- geocache - In-memory cache that is suitable for geolocation based applications.
- geoserver - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API.
- gismanager - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver.
- osm - Library for reading, writing and working with OpenStreetMap data and APIs.
- pbf - OpenStreetMap PBF golang encoder/decoder.
- S2 geometry - S2 geometry library in Go.
- Tile38 - Geolocation DB with spatial index and realtime geofencing.
Go Compilers
Tools for compiling Go to other languages.
- c4go - Transpile C code to Go code.
- f4go - Transpile FORTRAN 77 code to Go code.
- gopherjs - Compiler from Go to JavaScript.
- llgo - LLVM-based compiler for Go.
- tardisgo - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler.
Goroutines
Tools for managing and working with Goroutines.
- ants - A high-performance goroutine pool for golang.
- artifex - Simple in-memory job queue for Golang using worker-based dispatching.
- async - A safe way to execute functions asynchronously, recovering them in case of panic.
- breaker - Flexible mechanism to make execution flow interruptible.
- cyclicbarrier - CyclicBarrier for golang.
- go-floc - Orchestrate goroutines with ease.
- go-flow - Control goroutines execution order.
- go-tools/multithreading - Manage a pool of goroutines using this lightweight library with a simple API.
- go-trylock - TryLock support on read-write lock for Golang.
- gollback - asynchronous simple function utilities, for managing execution of closures and callbacks.
- GoSlaves - Simple and Asynchronous Goroutine pool library.
- goworker - goworker is a Go-based background worker.
- gpool - manages a resizeable pool of context-aware goroutines to bound concurrency.
- grpool - Lightweight Goroutine pool.
- Hunch - Hunch provides functions like:
All
,First
,Retry
,Waterfall
etc., that makes asynchronous flow control more intuitive. - oversight - Oversight is a complete implementation of the Erlang supervision trees.
- parallel-fn - Run functions in parallel.
- pool - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation.
- queue - Gives you a
sync.WaitGroup
like queue group accessibility. Helps you to throttle and limit goroutines, wait for the end of the all goroutines and much more. - routine - go routine control with context, support: Main, Go, Pool and some useful Executors.
- semaphore - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context.
- semaphore - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations).
- stl - Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism.
- threadpool - Golang threadpool implementation.
- tunny - Goroutine pool for golang.
- worker-pool - goworker is a Go simple async worker pool.
- workerpool - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued.
GUI
Libraries for building GUI Applications.
Toolkits
- app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.
- fyne - Cross platform native GUIs designed for Go, rendered using EFL. Supports: Linux, macOS, Windows.
- go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron).
- go-gtk - Go bindings for GTK.
- go-sciter - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform.
- gotk3 - Go bindings for GTK3.
- gowd - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform.
- qt - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
- ui - Platform-native GUI library for Go. Cross platform.
- Wails - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer.
- walk - Windows application library kit for Go.
- webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).
Interaction
- go-appindicator - Go bindings for libappindicator3 C library.
- gosx-notifier - OSX Desktop Notifications library for Go.
- mac-activity-tracker - OSX library to notify about any (pluggable) activity on your machine.
- mac-sleep-notifier - OSX Sleep/Wake notifications in golang.
- robotgo - Go Native cross-platform GUI system automation. Control the mouse, keyboard and other.
- systray - Cross platform Go library to place an icon and menu in the notification area.
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar.
Hardware
Libraries, tools, and tutorials for interacting with hardware.
See go-hardware for a comprehensive list.
Images
Libraries for manipulating images.
- bild - Collection of image processing algorithms in pure Go.
- bimg - Small package for fast and efficient image processing using libvips.
- cameron - An avatar generator for Go.
- darkroom - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency.
- geopattern - Create beautiful generative image patterns from a string.
- gg - 2D rendering in pure Go.
- gift - Package of image processing filters.
- gltf - Efficient and robust glTF 2.0 reader, writer and validator.
- go-cairo - Go binding for the cairo graphics library.
- go-gd - Go binding for GD library.
- go-nude - Nudity detection with Go.
- go-opencv - Go bindings for OpenCV.
- go-webcolors - Port of webcolors library from Python to Go.
- gocv - Go package for computer vision using OpenCV 3.3+.
- goimagehash - Go Perceptual image hashing package.
- goimghdr - The imghdr module determines the type of image contained in a file for Go.
- govatar - Library and CMD tool for generating funny avatars.
- image2ascii - Convert image to ASCII.
- imagick - Go binding to ImageMagick's MagickWand C API.
- imaginary - Fast and simple HTTP microservice for image resizing.
- imaging - Simple Go image processing package.
- img - Selection of image manipulation tools.
- ln - 3D line art rendering in Go.
- mergi - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate).
- mort - Storage and image processing server written in Go.
- mpo - Decoder and conversion tool for MPO 3D Photos.
- picfit - An image resizing server written in Go.
- pt - Path tracing engine written in Go.
- resize - Image resizing for Go with common interpolation methods.
- rez - Image resizing in pure Go and SIMD.
- smartcrop - Finds good crops for arbitrary images and crop sizes.
- steganography - Pure Go Library for LSB steganography.
- stegify - Go tool for LSB steganography, capable of hiding any file within an image.
- svgo - Go Language Library for SVG generation.
- tga - Package tga is a TARGA image format decoder/encoder.
IoT (Internet of Things)
Libraries for programming devices of the IoT.
- connectordb - Open-Source Platform for Quantified Self & IoT.
- devices - Suite of libraries for IoT devices, experimental for x/exp/io.
- eywa - Project Eywa is essentially a connection manager that keeps track of connected devices.
- flogo - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration.
- gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals.
- gobot - Gobot is a framework for robotics, physical computing, and the Internet of Things.
- huego - An extensive Philips Hue client library for Go.
- iot - IoT is a simple framework for implementing a Google IoT Core device.
- mainflux - Industrial IoT Messaging and Device Management Server.
- periph - Peripherals I/O to interface with low-level board facilities.
- sensorbee - Lightweight stream processing engine for IoT.
Job Scheduler
Libraries for scheduling jobs.
- clockwerk - Go package to schedule periodic jobs using a simple, fluent syntax.
- clockwork - Simple and intuitive job scheduling library in Go.
- go-cron - Simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons.
- gron - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly.
- JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in.
- jobs - Persistent and flexible background jobs library.
- leprechaun - Job scheduler that supports webhooks, crons and classic scheduling.
- scheduler - Cronjobs scheduling made easy.
JSON
Libraries for working with JSON.
- ajson - Abstract JSON for golang with JSONPath support.
- gjo - Small utility to create JSON objects.
- GJSON - Get a JSON value with one line of code.
- go-jsonerror - Go-JsonError is ment to allow us to easily create json response errors that follow the JsonApi spec.
- go-respond - Go package for handling common HTTP JSON responses.
- gojq - JSON query in Golang.
- gojson - Automatically generate Go (golang) struct definitions from example JSON.
- JayDiff - JSON diff utility written in Go.
- JSON-to-Go - Convert JSON to Go struct.
- jsonapi-errors - Go bindings based on the JSON API errors reference.
- jsonf - Console tool for highlighted formatting and struct query fetching JSON.
- jsongo - Fluent API to make it easier to create Json objects.
- jsonhal - Simple Go package to make custom structs marshal into HAL compatible JSON responses.
- kazaam - API for arbitrary transformation of JSON documents.
- mp - Simple cli email parser. It currently takes stdin and outputs JSON.
Logging
Libraries for generating and working with log files.
- distillog - distilled levelled logging (think of it as stdlib + log levels).
- glg - glg is simple and fast leveled logging library for Go.
- glo - PHP Monolog inspired logging facility with identical severity levels.
- glog - Leveled execution logs for Go.
- go-cronowriter - Simple writer that rotate log files automatically based on current date and time, like cronolog.
- go-log - Simple and configurable Logging in Go, with level, formatters and writers.
- go-log - Log lib supports level and multi handlers.
- go-log - Log4j implementation in Go.
- go-logger - Simple logger of Go Programs, with level handlers.
- gologger - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch.
- gomol - Multiple-output, structured logging for Go with extensible logging outputs.
- gone/log - Fast, extendable, full-featured, std-lib source compatible log library.
- journald - Go implementation of systemd Journal's native API for logging.
- log - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection).
- log - Structured logging package for Go.
- log - Simple, configurable and scalable Structured Logging for Go.
- log - Structured log interface for Go cleanly separates logging facade from its implementation.
- log-voyage - Full-featured logging saas written in golang.
- log15 - Simple, powerful logging for Go.
- logdump - Package for multi-level logging.
- logex - Golang log lib, supports tracking and level, wrap by standard log lib.
- logger - Minimalistic logging library for Go.
- logmatic - Colorized logger for Golang with dynamic log level configuration.
- logo - Golang logger to different configurable writers.
- logrus - Structured logger for Go.
- logrusly - logrus plug-in to send errors to a Loggly.
- logutils - Utilities for slightly better logging in Go (Golang) extending the standard logger.
- logxi - 12-factor app logger that is fast and makes you happy.
- lumberjack - Simple rolling logger, implements io.WriteCloser.
- mlog - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output.
- onelog - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation.
- ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail).
- rollingwriter - RollingWriter is an auto-rotate
io.Writer
implementation with multi policies to provide log file rotation. - seelog - Logging functionality with flexible dispatching, filtering, and formatting.
- spew - Implements a deep pretty printer for Go data structures to aid in debugging.
- stdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.
- tail - Go package striving to emulate the features of the BSD tail program.
- xlog - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format.
- xlog - Structured logger for
net/context
aware HTTP handlers with flexible dispatching. - zap - Fast, structured, leveled logging in Go.
- zerolog - Zero-allocation JSON logger.
Machine Learning
Libraries for Machine Learning.
- bayesian - Naive Bayesian Classification for Golang.
- CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.
- eaopt - An evolutionary optimization library.
- evoli - Genetic Algorithm and Particle Swarm Optimization library.
- fonet - A Deep Neural Network library written in Go.
- go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms.
- go-deep - A feature-rich neural network library in Go.
- go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library.
- go-galib - Genetic Algorithms library written in Go / golang.
- go-pr - Pattern recognition package in Go lang.
- gobrain - Neural Networks written in go.
- godist - Various probability distributions, and associated methods.
- goga - Genetic algorithm library for Go.
- GoLearn - General Machine Learning library for Go.
- golinear - liblinear bindings for Go.
- GoMind - A simplistic Neural Network Library in Go.
- goml - On-line Machine Learning in Go.
- Goptuna - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized.
- goRecommend - Recommendation Algorithms library written in Go.
- gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms.
- gorse - A High Performance Recommender System Package based on Collaborative Filtering for Go.
- goscore - Go Scoring API for PMML.
- gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library.
- libsvm - libsvm golang version derived work based on LIBSVM 3.14.
- neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT).
- neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation.
- ocrserver - A simple OCR API server, seriously easy to be deployed by Docker and Heroku.
- onnx-go - Go Interface to Open Neural Network Exchange (ONNX).
- probab - Probability distribution functions. Bayesian inference. Written in pure Go.
- regommend - Recommendation & collaborative filtering engine.
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go.
- tfgo - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python.
- Varis - Golang Neural Network.
Messaging
Libraries that implement messaging systems.
- APNs2 - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps.
- Beaver - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
- Benthos - A message streaming bridge between a range of protocols.
- Bus - Minimalist message bus implementation for internal communication.
- Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.
- Commander - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka.
- dbus - Native Go bindings for D-Bus.
- drone-line - Sending Line notifications using a binary, docker or Drone CI.
- emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.
- event - Implementation of the pattern observer.
- EventBus - The lightweight event bus with async compatibility.
- gaurun-client - Gaurun Client written in Go.
- Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io).
- go-notify - Native implementation of the freedesktop notification spec.
- go-nsq - the official Go package for NSQ.
- go-socket.io - socket.io library for golang, a realtime application framework.
- go-vitotrol - Client library to Viessmann Vitotrol web service.
- Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.
- golongpoll - HTTP longpoll server library that makes web pub-sub simple.
- goose - Server Sent Events in Go.
- gopush-cluster - gopush-cluster is a go push server cluster.
- gorush - Push notification server using APNs2 and google GCM.
- guble - Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.
- hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges.
- jazz - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages.
- machinery - Asynchronous task queue/job queue based on distributed message passing.
- mangos - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability.
- melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling.
- Mercure - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events).
- messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD.
- NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
- nsq-event-bus - A tiny wrapper around NSQ topic and channel.
- oplog - Generic oplog/replication system for REST APIs.
- pubsub - Simple pubsub package for go.
- rabbus - A tiny wrapper over amqp exchanges and queues.
- rabtap - RabbitMQ swiss army knife cli app.
- RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue.
- redisqueue - redisqueue provides a producer and consumer of a queue that uses Redis streams.
- rmqconn - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed.
- sarama - Go library for Apache Kafka.
- Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices.
- zmq4 - Go interface to ZeroMQ version 4. Also available for version 3 and version 2.
Microsoft Office
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
Microsoft Excel
Libraries for working with Microsoft Excel.
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
- go-excel - A simple and light reader to read a relate-db-like excel as a table.
- goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files.
- xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
- xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
Miscellaneous
Dependency Injection
Libraries for working with dependency injection.
- alice - Additive dependency injection container for Golang.
- dig - A reflection based dependency injection toolkit for Go.
- fx - A dependency injection based application framework for Go (built on top of dig).
- gocontainer - Simple Dependency Injection Container.
- inject - A reflection based dependency injection container with simple interface.
- linker - A reflection based dependency injection and inversion of control library with components lifecycle support.
- wire - Strict Runtime Dependency Injection for Golang.
Project Layout
Unofficial set of patterns for structuring projects.
- go-sample - A sample layout for Go application projects with the real code.
- golang-standards/project-layout - Set of common historical and emerging project layout patterns in the Go ecosystem.
- scaffold - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted.
Strings
Libraries for working with strings.
- strutil - String utilities.
- xstrings - Collection of useful string functions ported from other languages.
These libraries were placed here because none of the other categories seemed to fit.
- anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.
- antch - A fast, powerful and extensible web crawling & scraping framework.
- archiver - Library and command for making and extracting .zip and .tar.gz archives.
- autoflags - Go package to automatically define command line flags from struct fields.
- avgRating - Calculate average score and rating based on Wilson Score Equation.
- banner - Add beautiful banners into your Go applications.
- base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha.
- battery - Cross-platform, normalized battery information library.
- bitio - Highly optimized bit-level Reader and Writer for Go.
- browscap_go - GoLang Library for Browser Capabilities Project.
- captcha - Package captcha provides an easy to use, unopinionated API for captcha generation.
- conv - Package conv provides fast and intuitive conversions across Go types.
- datacounter - Go counters for readers/writer/http.ResponseWriter.
- ffmt - Beautify data display for Humans.
- ghorg - Clone all repos from a GitHub org into a single directory.
- go-commons-pool - Generic object pool for Golang.
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- go-resiliency - Resiliency patterns for golang.
- go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives.
- gofakeit - Random data generator written in go.
- gommit - Analyze git commit messages to ensure they follow defined patterns.
- gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
- gosh - Provide Go Statistics Handler, Struct, Measure Method.
- gosms - Your own local SMS gateway in Go that can be used to send SMS.
- gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client.
- gountries - Package that exposes country and subdivision data.
- health - Easy to use, extensible health check library.
- healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services.
- hostutils - A golang library for packing and unpacking FQDNs list.
- indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58.
- lk - A simple licensing library for golang.
- llvm - Library for interacting with LLVM IR in pure Go.
- metrics - Library for metrics instrumentation and Prometheus exposition.
- morse - Library to convert to and from morse code.
- numa - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code.
- pdfgen - HTTP service to generate PDF from Json requests.
- persian - Some utilities for Persian language in go.
- sandid - Every grain of sand on earth has its own ID.
- shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell.
- shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
- turtle - Emojis for Go.
- url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support.
- VarHandler - Generate boilerplate http input and output handling.
- xdg - FreeDesktop.org (xdg) Specs implemented in Go.
- xkg - X Keyboard Grabber.
Natural Language Processing
Libraries for working with human languages.
- getlang - Fast natural language detection package.
- go-i18n - Package and an accompanying tool to work with localized text.
- go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer.
- go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work.
- go-pinyin - CN Hanzi to Hanyu Pinyin converter.
- go-stem - Implementation of the porter stemming algorithm.
- go-unidecode - ASCII transliterations of Unicode text.
- go2vec - Reader and utility functions for word2vec embeddings.
- gojieba - This is a Go implementation of jieba which a Chinese word splitting algorithm.
- golibstemmer - Go bindings for the snowball libstemmer library including porter 2.
- gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation)
- gounidecode - Unicode transliterator (also known as unidecode) for Go.
- gse - Go efficient text segmentation; support english, chinese, japanese and other.
- icu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1.
- kagome - JP morphological analyzer written in pure Go.
- libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.
- MMSEGO - This is a GO implementation of MMSEG which a Chinese word splitting algorithm.
- nlp - Extract values from strings and fill your structs with nlp.
- nlp - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis).
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm.
- petrovich - Petrovich is the library which inflects Russian names to given grammatical case.
- porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm.
- porter2 - Really fast Porter 2 stemmer.
- prose - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more.
- RAKE.go - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE).
- segment - Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29
- sentences - Sentence tokenizer: converts text into a list of sentences.
- shamoji - The shamoji is word filtering package written in Go.
- snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality Snowball native.
- stemmer - Stemmer packages for Go programming language. Includes English and German stemmers.
- textcat - Go package for n-gram based text categorization, with support for utf-8 and raw text.
- whatlanggo - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc).
- when - Natural EN and RU language date/time parser with pluggable rules.
Networking
Libraries for working with various layers of the network.
- arp - Package arp implements the ARP protocol, as described in RFC 826.
- buffstreams - Streaming protocolbuffer data over TCP made easy.
- canopus - CoAP Client/Server implementation (RFC 7252).
- cidranger - Fast IP to CIDR lookup for Go.
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
- dns - Go library for working with DNS.
- ether - Cross-platform Go package for sending and receiving ethernet frames.
- ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
- fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
- fortio - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC.
- ftp - Package ftp implements a FTP client as described in RFC 959.
- gmqtt - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1.
- gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols.
- go-getter - Go library for downloading files or directories from various sources using a URL.
- go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
- gobgp - BGP implemented in the Go Programming Language.
- golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.
- gopacket - Go library for packet processing with libpcap bindings.
- gopcap - Go wrapper for libpcap.
- goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
- gosnmp - Native Go library for performing SNMP actions.
- gotcp - Go package for quickly writing tcp applications.
- grab - Go package for managing file downloads.
- graval - Experimental FTP server framework.
- HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
- iplib - Library for working with IP addresses (net.IP, net.IPNet), inspired by python ipaddress and ruby ipaddr
- jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
- kcp-go - KCP - Fast and Reliable ARQ Protocol.
- kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
- lhttp - Powerful websocket framework, build your IM server more easily.
- linkio - Network link speed simulation for Reader/Writer interfaces.
- llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.
- mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
- packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.
- peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast.
- portproxy - Simple TCP proxy which adds CORS support to API's which don't support it.
- publicip - Package publicip returns your public facing IPv4 address (internet egress).
- quic-go - An implementation of the QUIC protocol in pure Go.
- raw - Package raw enables reading and writing data at the device driver level for a network interface.
- sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
- ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
- sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance.
- stun - Go implementation of RFC 5389 STUN protocol.
- tcp_server - Go library for building tcp servers faster.
- tspool - A TCP Library use worker pool to improve performance and protect your server.
- utp - Go uTP micro transport protocol implementation.
- water - Simple TUN/TAP library.
- webrtc - A pure Go implementation of the WebRTC API.
- winrm - Go WinRM client to remotely execute commands on Windows machines.
- xtcp - TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol.
HTTP Clients
Libraries for making HTTP requests.
- gentleman - Full-featured plugin-driven HTTP client library.
- goreq - Enhanced simplified HTTP client based on gorequest.
- grequests - A Go "clone" of the great and famous Requests library.
- heimdall - An enchanced http client with retry and hystrix capabilities.
- pester - Go HTTP client calls with retries, backoff, and concurrency.
- rq - A nicer interface for golang stdlib HTTP client.
- sling - Sling is a Go HTTP client library for creating and sending API requests.
OpenGL
Libraries for using OpenGL in Go.
- gl - Go bindings for OpenGL (generated via glow).
- glfw - Go bindings for GLFW 3.
- goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android).
- goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events.
- mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.
ORM
Libraries that implement Object-Relational Mapping or datamapping techniques.
- beego orm - Powerful orm framework for go. Support: pq/mysql/sqlite3.
- go-firestorm - A simple ORM for Google/Firebase Cloud Firestore.
- go-pg - PostgreSQL ORM with focus on PostgreSQL specific features and performance.
- go-queryset - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM.
- go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM.
- go-store - Simple and fast Redis backed key-value store library for Go.
- GORM - The fantastic ORM library for Golang, aims to be developer friendly.
- gorp - Go Relational Persistence, ORM-ish library for Go.
- grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).
- lore - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
- Marlow - Generated ORM from project structs for compile time safety assurances.
- pop/soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
- QBS - Stands for Query By Struct. A Go ORM.
- reform - Better ORM for Go, based on non-empty interfaces and code generation.
- SQLBoiler - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.
- upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.
- Xorm - Simple and powerful ORM for Go.
- Zoom - Blazing-fast datastore and querying engine built on Redis.
Package Management
Official tooling for dependency and package management
- go modules - Modules are the unit of source code interchange and versioning. The go command has direct support for working with modules, including recording and resolving dependencies on other modules.
Official experimental tooling for package management
Unofficial libraries for package and dependency management.
- gigo - PIP-like dependency tool for golang, with support for private repositories and hashes.
- glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.
- godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies.
- gom - Go Manager - bundle for go.
- goop - Simple dependency manager for Go (golang), inspired by Bundler.
- gop - Build and manage your Go applications out of GOPATH.
- gopm - Go Package Manager.
- govendor - Go Package Manager. Go vendor tool that works with the standard vendor file.
- gpm - Barebones dependency manager for Go.
- johnny-deps - Minimal dependency version using Git.
- mvn-golang - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure.
- nut - Vendor Go dependencies.
- VenGO - create and manage exportable isolated go virtual environments.
Performance
- jaeger - A distributed tracing system.
- profile - Simple profiling support package for Go.
- tracer - Simple, lightweight tracing.
Query Language
- gojsonq - A simple Go package to Query over JSON Data.
- graphql - graphql parser + utilities.
- graphql - GraphQL server with a focus on ease of use.
- graphql-go - Implementation of GraphQL for Go.
- jsonql - JSON query expression library in Golang.
- jsonslice - Jsonpath queries with advanced filters.
- rql - Resource Query Language for REST API.
Resource Embedding
- esc - Embeds files into Go programs and provides http.FileSystem interfaces to them.
- fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use.
- go-embed - Generates go code to embed resource files into your library or executable.
- go-resources - Unfancy resources embedding with Go.
- go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
- packr - The simple and easy way to embed static files into Go binaries.
- statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
- statik - Embeds static files into a Go executable.
- templify - Embed external template files into Go code to create single file binaries.
- vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
Science and Data Analysis
Libraries for scientific computing and data analyzing.
- assocentity - Package assocentity returns the average distance from words to a given entity.
- bradleyterry - Provides a Bradley-Terry Model for pairwise comparisons.
- chart - Simple Chart Plotting library for Go. Supports many graphs types.
- dataframe-go - Dataframes for Go for machine-learning and statistics (similar to pandas).
- evaler - Simple floating point arithmetic expression evaluator.
- ewma - Exponentially-weighted moving averages.
- geom - 2D geometry for golang.
- go-dsp - Digital Signal Processing for Go.
- go-gt - Graph theory algorithms written in "Go" language.
- goent - GO Implementation of Entropy Measures.
- gohistogram - Approximate histograms for data streams.
- gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more.
- gonum/plot - gonum/plot provides an API for building and drawing plots in Go.
- goraph - Pure Go graph theory library(data structure, algorith visualization).
- gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
- GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions.
- graph - Library of basic graph algorithms.
- ode - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.
- orb - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support.
- pagerank - Weighted PageRank algorithm implemented in Go.
- piecewiselinear - Tiny linear interpolation library.
- PiHex - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi.
- rootfinding - root-finding algorithms library for finding roots of quadratic functions.
- sparse - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries.
- stats - Statistics package with common functions missing from the Golang standard library.
- streamtools - general purpose, graphical tool for dealing with streams of data.
- TextRank - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support.
- triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs.
Security
Libraries that are used to help make your application more secure.
- acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
- acra - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system.
- argon2pw - Argon2 password hash generation with constant-time password comparison.
- autocert - Auto provision Let's Encrypt certificates and start a TLS server.
- BadActor - In-memory, application-driven jailer built in the spirit of fail2ban.
- Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras.
- certificates - An opinionated tool for generating tls certificates.
- go-yara - Go Bindings for YARA, the "pattern matching swiss knife for malware researchers (and everyone else)".
- goArgonPass - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations.
- goSecretBoxPassword - A probably paranoid package for securely hashing and encrypting passwords.
- Interpol - Rule-based data generator for fuzzing and penetration testing.
- jwc - JSON Web Cryptography library.
- lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt).
- memguard - A pure Go library for handling sensitive values in memory.
- nacl - Go implementation of the NaCL set of API's.
- passlib - Futureproof password hashing library.
- secure - HTTP middleware for Go that facilitates some quick security wins.
- simple-scrypt - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
- ssh-vault - encrypt/decrypt using ssh keys.
- sslmgr - SSL certificates made easy with a high level wrapper around acme/autocert.
Serialization
Libraries and tools for binary serialization.
- asn1 - Asn.1 BER and DER encoding library for golang.
- bambam - generator for Cap'n Proto schemas from go.
- bel - Generate TypeScript interfaces from Go structs/interfaces. Useful for JSON RPC.
- binstruct - Golang binary decoder for mapping data into the structure.
- colfer - Code generation for the Colfer binary format.
- csvutil - High Performance, idiomatic CSV record encoding and decoding to native Go structures.
- fwencoder - Fixed width file parser (encoding and decoding library) for Go.
- go-capnproto - Cap'n Proto library and parser for go.
- go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support.
- gogoprotobuf - Protocol Buffers for Go with Gadgets.
- goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers.
- jsoniter - High-performance 100% compatible drop-in replacement of "encoding/json".
- mapstructure - Go library for decoding generic map values into native Go structures.
- php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions.
- pletter - A standard way to wrap a proto message for message brokers.
- structomap - Library to easily and dynamically generate maps from static structures.
Server Applications
- algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
- Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use.
- consul - Consul is a tool for service discovery, monitoring and configuration.
- devd - Local webserver for developers.
- discovery - A registry for resilient mid-tier load balancing and failover.
- etcd - Highly-available key value store for shared configuration and service discovery.
- Fider - Fider is an open platform to collect and organize customer feedback.
- Flagr - Flagr is an open-source feature flagging and A/B testing service.
- flipt - A self contained feature flag solution written in Go and Vue.js
- jackal - An XMPP server written in Go.
- minio - Minio is a distributed object storage server.
- nginx-prometheus - Nginx log parser and exporter to Prometheus.
- nsq - A realtime distributed messaging platform.
- psql-streamer - Stream database events from PostgreSQL to Kafka.
- riemann-relay - Relay to load-balance Riemann events and/or convert them to Carbon.
- RoadRunner - High-performance PHP application server, load-balancer and process manager.
- SFTPGo - Full featured and highly configurable SFTP server software.
- yakvs - Small, networked, in-memory key-value store.
Stream Processing
Libraries and tools for stream processing and reactive programming.
- go-streams - Go stream processing library.
Template Engines
Libraries and tools for templating and lexing.
- ace - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold.
- amber - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade.
- damsel - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others.
- ego - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.
- extemplate - Tiny wrapper around html/template to allow for easy file-based template inheritance.
- fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than text/template.
- gofpdf - PDF document generator with high level support for text, drawing and images.
- goview - Goview is a lightweight, minimalist and idiomatic template library based on golang html/template for building Go web application.
- hero - Hero is a handy, fast and powerful go template engine.
- jet - Jet template engine.
- kasia.go - Templating system for HTML and other text documents - go implementation.
- liquid - Go implementation of Shopify Liquid templates.
- mustache - Go implementation of the Mustache template language.
- pongo2 - Django-like template-engine for Go.
- quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.
- raymond - Complete handlebars implementation in Go.
- Razor - Razor view engine for Golang.
- Soy - Closure templates (aka Soy templates) for Go, following the official spec.
- velvet - Complete handlebars implementation in Go.
Testing
Libraries for testing codebases and generating test data.
-
Testing Frameworks
- apitest - Simple and extensible behavioural testing library for REST based services or HTTP handlers that supports mocking external http calls and rendering of sequence diagrams.
- assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
- badio - Extensions to Go's
testing/iotest
package. - baloo - Expressive and versatile end-to-end HTTP API testing made easy.
- biff - Bifurcation testing framework, BDD compatible.
- charlatan - Tool to generate fake interface implementations for tests.
- commander - Tool for testing cli applications on windows, linux and osx.
- cupaloy - Simple snapshot testing addon for your test framework.
- dbcleaner - Clean database for testing purpose, inspired by
database_cleaner
in Ruby. - dsunit - Datastore testing for SQL, NoSQL, structured files.
- endly - Declarative end to end functional testing.
- flute - HTTP client testing framework.
- frisby - REST API testing framework.
- ginkgo - BDD Testing Framework for Go.
- go-carpet - Tool for viewing test coverage in terminal.
- go-cmp - Package for comparing Go values in tests.
- go-mutesting - Mutation testing for Go source code.
- go-testdeep - Extremely flexible golang deep comparison, extends the go testing package.
- go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests.
- goblin - Mocha like testing framework fo Go.
- gocheck - More advanced testing framework alternative to gotest.
- GoConvey - BDD-style framework with web UI and live reload.
- gocrest - Composable hamcrest-like matchers for Go assertions.
- godog - Cucumber or Behat like BDD framework for Go.
- gofight - API Handler Testing for Golang Router framework.
- gogiven - YATSPEC-like BDD testing framework for Go.
- gomatch - library created for testing JSON against patterns.
- gomega - Rspec like matcher/assertion library.
- GoSpec - BDD-style testing framework for the Go programming language.
- gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
- gosuite - Brings lightweight test suites with setup/teardown facilities to
testing
by leveraging Go1.7's Subtests. - gotest.tools - A collection of packages to augment the go testing package and support common patterns.
- Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
- httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing.
- jsonassert - Package for verifying that your JSON payloads are serialized correctly.
- restit - Go micro framework to help writing RESTful API integration test.
- testcase - Idiomatic testing framework for Behavior Driven Development.
- testfixtures - A helper for Rails' like test fixtures to test database applications.
- Testify - Sacred extension to the standard go testing package.
- testmd - Convert markdown snippets into testable go code.
- testsql - Generate test data from SQL files before testing and clear it after finished.
- Tt - Simple and colorful test tools.
- wstest - Websocket client for unit-testing a websocket http.Handler.
-
Mock
- counterfeiter - Tool for generating self-contained mock objects.
- go-sqlmock - Mock SQL driver for testing database interactions.
- go-txdb - Single transaction based database driver mainly for testing purposes.
- gock - Versatile HTTP mocking made easy.
- gomock - Mocking framework for the Go programming language.
- govcr - HTTP mock for Golang: record and replay HTTP interactions for offline testing.
- hoverfly - HTTP(S) proxy for recording and simulating REST/SOAP APIs with extensible middleware and easy-to-use CLI.
- httpmock - Easy mocking of HTTP responses from external resources.
- minimock - Mock generator for Go interfaces.
- mockhttp - Mock object for Go http.ResponseWriter.
-
Fuzzing and delta-debugging/reducing/shrinking.
-
Selenium and browser control tools.
- cdp - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it.
- chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
- ggr - a lightweight server that routes and proxies Selenium WebDriver requests to multiple Selenium hubs.
- selenoid - alternative Selenium hub server that launches browsers within containers.
-
Fail injection
- failpoint - An implementation of failpoints for Golang.
Text Processing
Libraries for parsing and manipulating texts.
- Specific Formats
- align - A general purpose application that aligns text.
- allot - Placeholder and wildcard text parsing for CLI tools and bots.
- bbConvert - Converts bbCode to HTML that allows you to add support for custom bbCode tags.
- blackfriday - Markdown processor in Go.
- bluemonday - HTML Sanitizer.
- codetree - Parses indented code (python, pixy, scarlet, etc.) and returns a tree structure.
- colly - Fast and Elegant Scraping Framework for Gophers.
- commonregex - A collection of common regular expressions for Go.
- dataflowkit - Web scraping Framework to turn websites into structured data.
- did - DID (Decentralized Identifiers) Parser and Stringer in Go.
- doi - Document object identifier (doi) parser in Go.
- editorconfig-core-go - Editorconfig file parser and manipulator for Go.
- enca - Minimal cgo bindings for libenca.
- encdec - Package provides a generic interface to encoders and decodersa.
- genex - Count and expand Regular Expressions into all matching Strings.
- github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
- go-fixedwidth - Fixed-width text formatting (encoder/decoder with reflection).
- go-humanize - Formatters for time, numbers, and memory size to human readable format.
- go-nmea - NMEA parser library for the Go language.
- go-runewidth - Functions to get fixed width of the character or string.
- go-slugify - Make pretty slug with multiple languages support.
- go-toml - Go library for the TOML format with query support and handy cli tools.
- go-vcard - Parse and format vCard.
- go-zero-width - Zero-width character detection and removal for Go.
- gofeed - Parse RSS and Atom feeds in Go.
- gographviz - Parses the Graphviz DOT language.
- gommon/bytes - Format bytes to string.
- gonameparts - Parses human names into individual name parts.
- goq - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery).
- GoQuery - GoQuery brings a syntax and a set of features similar to jQuery to the Go language.
- goregen - Library for generating random strings from regular expressions.
- gotext - GNU gettext utilities for Go.
- guesslanguage - Functions to determine the natural language of a unicode text.
- htmlquery - An XPath query package for HTML, lets you extract data or evaluate from HTML documents by an XPath expression.
- inject - Package inject provides a reflect based injector.
- ltsv - High performance LTSV (Labeled Tab Separeted Value) reader for Go.
- mxj - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages.
- sdp - SDP: Session Description Protocol [RFC 4566].
- sh - Shell parser and formatter.
- slug - URL-friendly slugify with multiple languages support.
- Slugify - Go slugify application that handles string.
- syndfeed - A syndication feed for Atom 1.0 and RSS 2.0.
- toml - TOML configuration format (encoder/decoder with reflection).
- Utility
- gofuckyourself - A sanitization-based swear filter for Go.
- gotabulate - Easily pretty-print your tabular data with Go.
- kace - Common case conversions covering common initialisms.
- parseargs-go - string argument parser that understands quotes and backslashes.
- parth - URL path segmentation parsing.
- radix - fast string sorting algorithm.
- Tagify - Produces a set of tags from given source.
- TySug - Alternative suggestions with respect to keyboard layouts.
- xj2go - Convert xml or json to go struct.
- xurls - Extract urls from text.
Third-party APIs
Libraries for accessing third party APIs.
- amazon-product-advertising-api - Go Client Library for Amazon Product Advertising API.
- anaconda - Go client library for the Twitter 1.1 API.
- aws-sdk-go - The official AWS SDK for the Go programming language.
- brewerydb - Go library for accessing the BreweryDB API.
- cachet - Go client library for Cachet (open source status page system).
- circleci - Go client library for interacting with CircleCI's API.
- clarifai - Go client library for interfacing with the Clarifai API.
- codeship-go - Go client library for interacting with Codeship's API v2.
- coinpaprika-go - Go client library for interacting with Coinpaprika's API.
- discordgo - Go bindings for the Discord Chat API.
- ethrpc - Go bindings for Ethereum JSON RPC API.
- facebook - Go Library that supports the Facebook Graph API.
- fcm - Go library for Firebase Cloud Messaging.
- gads - Google Adwords Unofficial API.
- gami - Go library for Asterisk Manager Interface.
- gcm - Go library for Google Cloud Messaging.
- geo-golang - Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs.
- github - Go library for accessing the GitHub REST API v3.
- githubql - Go library for accessing the GitHub GraphQL API v4.
- go-chronos - Go library for interacting with the Chronos Job Scheduler
- go-hacknews - Tiny Go client for HackerNews API.
- go-imgur - Go client library for imgur
- go-jira - Go client library for Atlassian JIRA
- go-marathon - Go library for interacting with Mesosphere's Marathon PAAS.
- go-myanimelist - Go client library for accessing the MyAnimeList API.
- go-sophos - Go client library for the Sophos UTM REST API with zero dependencies.
- go-sptrans - Go client library for the SPTrans Olho Vivo API.
- go-telegraph - Telegraph publishing platform API client.
- go-trending - Go library for accessing trending repositories and developers at Github.
- go-twitch - Go client for interacting with the Twitch v3 API.
- go-twitter - Go client library for the Twitter v1.1 APIs.
- go-unsplash - Go client library for the Unsplash.com API.
- go-xkcd - Go client for the xkcd API.
- golyrics - Golyrics is a Go library to fetch music lyrics data from the Wikia website.
- gomalshare - Go library MalShare API malshare.com
- GoMusicBrainz - Go MusicBrainz WS2 client library.
- google - Auto-generated Google APIs for Go.
- google-analytics - Simple wrapper for easy google analytics reporting.
- google-cloud - Google Cloud APIs Go Client Library.
- google-email-audit-api - Go client library for Google G Suite Email Audit API.
- gostorm - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells.
- hipchat - This project implements a golang client library for the Hipchat API.
- hipchat (xmpp) - A golang package to communicate with HipChat over XMPP.
- igdb - Go client for the Internet Game Database API.
- Medium - Golang SDK for Medium's OAuth2 API.
- megos - Client library for accessing an Apache Mesos cluster.
- minio-go - Minio Go Library for Amazon S3 compatible cloud storage.
- mixpanel - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications.
- patreon-go - Go library for Patreon API.
- paypal - Wrapper for PayPal payment API.
- playlyfe - The Playlyfe Rest API Go SDK.
- pushover - Go wrapper for the Pushover API.
- rrdaclient - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP.
- shopify - Go Library to make CRUD request to the Shopify API.
- simples3 - Simple no frills AWS S3 Library using REST with V4 Signing written in Go.
- slack - Slack API in Go.
- smite - Go package to wraps access to the Smite game API.
- spotify - Go Library to access Spotify WEB API.
- steam - Go Library to interact with Steam game servers.
- stripe - Go client for the Stripe API.
- textbelt - Go client for the textbelt.com txt messaging API.
- translate - Go online translation package.
- Trello - Go wrapper for the Trello API.
- TripAdvisor - Go wrapper for the TripAdvisor API.
- tumblr - Go wrapper for the Tumblr v2 API.
- uptimerobot - Go wrapper and command-line client for the Uptime Robot v2 API.
- webhooks - Webhook receiver for GitHub and Bitbucket.
- wit-go - Go client for wit.ai HTTP API.
- ynab - Go wrapper for the YNAB API.
- zooz - Go client for the Zooz API.
Utilities
General utilities and tools to make your life easier.
- abutil - Collection of often-used Golang helpers.
- apm - Process manager for Golang applications with an HTTP API.
- backscanner - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward.
- blank - Verify or remove blanks and whitespace from strings.
- boilr - Blazingly fast CLI tool for creating projects from boilerplate templates.
- chyle - Changelog generator using a git repository with multiple configuration possibilities.
- circuit - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern.
- circuitbreaker - Circuit Breakers in Go.
- clockwork - A simple fake clock for golang.
- command - Command pattern for Go with thread safe serial and parallel dispatcher.
- copy-pasta - Universal multi-workstation clipboard that uses S3 like backend for the storage.
- ctop - Top-like interface (e.g. htop) for container metrics.
- ctxutil - A collection of utility functions for contexts.
- dbt - A framework for running self-updating signed binaries from a central, trusted repository.
- Death - Managing go application shutdown with signals.
- Deepcopier - Simple struct copying for Go.
- delve - Go debugger.
- dlog - Compile-time controlled logger to make your release smaller without removing debug calls.
- ergo - The management of multiple local services running over different ports made easy.
- evaluator - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend.
- filetype - Small package to infer the file type checking the magic numbers signature.
- filler - small utility to fill structs using "fill" tag.
- filter - provide filtering, sanitizing, and conversion of Go data.
- fzf - Command-line fuzzy finder written in Go.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes.
- generate - runs go generate recursively on a specified path or environment variable and can filter by regex.
- ghokin - Parallelized formatter with no external dependencies for gherkin (cucumber, behat...).
- git-time-metric - Simple, seamless, lightweight time tracking for Git.
- go-astitodo - Parse TODOs in your GO code.
- go-bind-plugin - go:generate tool for wrapping symbols exported by golang plugins (1.8 only).
- go-bsdiff - Pure Go bsdiff and bspatch libraries and CLI tools.
- go-dry - DRY (don't repeat yourself) package for Go.
- go-funk - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...).
- go-health - Health package simplifies the way you add health check to your services.
- go-httpheader - Go library for encoding structs into Header fields.
- go-problemdetails - Go package for working with Problem Details.
- go-rate - Timed rate limiter for Go.
- go-sitemap-generator - XML Sitemap generator written in Go.
- go-trigger - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project.
- goback - Go simple exponential backoff package.
- godaemon - Utility to write daemons.
- godropbox - Common libraries for writing Go services/applications from Dropbox.
- gohper - Various tools/modules help for development.
- golarm - Fire alarms with system events.
- golog - Easy and lightweight CLI tool to time track your tasks.
- gopencils - Small and simple package to easily consume REST APIs.
- goplaceholder - a small golang lib to generate placeholder images.
- goreadability - Webpage summary extractor using Facebook Open Graph and arc90's readability.
- goreleaser - Deliver Go binaries as fast and easily as possible.
- goreporter - Golang tool that does static analysis, unit testing, code review and generate code quality report.
- goseaweedfs - SeaweedFS client library with almost full features.
- gostrutils - Collections of string manipulation and conversion functions.
- gotenv - Load environment variables from
.env
or anyio.Reader
in Go. - gpath - Library to simplify access struct fields with Go's expression in reflection.
- gubrak - Golang utility library with syntactic sugar. It's like lodash, but for golang.
- handy - Many utilities and helpers like string handlers/formatters and validators.
- htcat - Parallel and Pipelined HTTP GET Utility.
- hub - wrap git commands with additional functionality to interact with github from the terminal.
- hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.
- immortal - *nix cross-platform (OS agnostic) supervisor.
- intrinsic - Use x86 SIMD without writing any assembly code.
- jump - Jump helps you navigate faster by learning your habits.
- koazee - Library inspired in Lazy evaluation and functional programming that takes the hassle out of working with arrays.
- lrserver - LiveReload server for Go.
- mc - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems.
- mergo - Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.
- mimemagic - Pure Go ultra performant MIME sniffing library/utility.
- mimesniffer - A MIME type sniffer for Go.
- mimetype - Package for MIME type detection based on magic numbers.
- minify - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats.
- minquery - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off).
- mmake - Modern Make.
- moldova - Utility for generating random data based on an input template.
- mole - cli app to easily create ssh tunnels.
- mssqlx - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind.
- multitick - Multiplexor for aligned tickers.
- myhttp - Simple API to make HTTP GET requests with timeout support.
- okrun - go run error steamroller.
- olaf - Twitter Snowflake implemented in Go.
- onecache - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc).
- panicparse - Groups similar goroutines and colorizes stack dump.
- peco - Simplistic interactive filtering tool.
- pgo - Convenient functions for PHP community.
- pm - Process (i.e. goroutine) manager with an HTTP API.
- rclient - Readable, flexible, simple-to-use client for REST APIs.
- realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.
- repeat - Go implementation of different backoff strategies useful for retrying operations and heartbeating.
- request - Go HTTP Requests for Humans™.
- rerate - Redis-based rate counter and rate limiter for Go.
- rerun - Recompiling and rerunning go apps when source changes.
- resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.
- retry - The most advanced functional mechanism to perform actions repetitively until successful.
- retry - A simple but highly configurable retry package for Go.
- retry - Simple and easy retry mechanism package for Go.
- retry - A pretty simple library to ensure your work to be done.
- retry-go - Retrying made simple and easy for golang.
- robustly - Runs functions resiliently, catching and restarting panics.
- scan - Scan golang
sql.Rows
directly to structs, slices, or primitive types. - serve - A static http server anywhere you need.
- silk - Read silk netflow files.
- sliceconv - Slice conversion between primitive types.
- slicer - Makes working with slices easier.
- spinner - Go package to easily provide a terminal spinner with options.
- sqlx - provides a set of extensions on top of the excellent built-in database/sql package.
- sslice - Create a slice which is always sorted.
- Storm - Simple and powerful toolkit for BoltDB.
- structs - Implement simple functions to manipulate structs.
- Task - simple "Make" alternative.
- toolbox - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer.
- ugo - ugo is slice toolbox with concise syntax for Go.
- UNIS - Common Architecture™ for String Utilities in Go.
- usql - usql is a universal command-line interface for SQL databases.
- util - Collection of useful utility functions. (strings, concurrency, manipulations, ...).
- wuzz - Interactive cli tool for HTTP inspection.
- xferspdy - Xferspdy provides binary diff and patch library in golang.
UUID
Libraries for working with UUIDs.
- goid - Generate and Parse RFC4122 compliant V4 UUIDs.
- nanoid - A tiny and efficient Go unique string ID generator.
- sno - Compact, sortable and fast unique IDs with embedded metadata.
- ulid - Go implementation of ULID (Universally Unique Lexicographically Sortable Identifier).
- uniq - No hassle safe, fast unique identifiers with commands.
- uuid - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier.
- uuid - Implementation of Universally Unique Identifier (UUID). Supports both creation and parsing of UUIDs. Actively maintained fork of satori uuid.
- wuid - An extremely fast unique number generator, 10-135 times faster than UUID.
Validation
Libraries for validation.
- checkdigit - Provide check digit algorithms (Luhn, Verhoeff, Damm) and calculators (ISBN, EAN, JAN, UPC, etc.).
- govalidator - Validators and sanitizers for strings, numerics, slices and structs.
- govalidator - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation.
- jio - jio is a json schema validator similar to joi.
- ozzo-validation - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags.
- terraform-validator - A norms and conventions validator for Terraform.
- validate - Go package for data validation and filtering. support validate Map, Struct, Request(Form, JSON, url.Values, Uploaded Files) data and more features.
- validate - This package provides a framework for writing validations for Go applications.
- validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.
Version Control
Libraries for version control.
- gh - Scriptable server and net/http middleware for GitHub Webhooks.
- git2go - Go bindings for libgit2.
- go-git - highly extensible Git implementation in pure Go.
- go-vcs - manipulate and inspect VCS repositories in Go.
- hercules - gaining advanced insights from Git repository history.
- hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories.
Video
Libraries for manipulating video.
- gmf - Go bindings for FFmpeg av* libraries.
- go-astisub - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
- go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO.
- go-m3u8 - Parser and generator library for Apple m3u8 playlists.
- goav - Comphrensive Go bindings for FFmpeg.
- gst - Go bindings for GStreamer.
- libgosubs - Subtitle format support for go. Supports .srt, .ttml, and .ass.
- libvlc-go - Go bindings for libvlc 2.X/3.X/4.X (used by the VLC media player).
- v4l - Video capture library for Linux, written in Go.
Web Frameworks
Full stack web frameworks.
- aah - Scalable, performant, rapid development Web framework for Go.
- Aero - High-performance web framework for Go, reaches top scores in Lighthouse.
- Air - An ideally refined web framework for Go.
- Banjo - Very simple and fast web framework for Go.
- Beego - beego is an open-source, high-performance web framework for the Go programming language.
- Buffalo - Bringing the productivity of Rails to Go!
- Echo - High performance, minimalist Go web framework.
- Fireball - More "natural" feeling web framework.
- Gem - Simple and fast web framework, friendly to REST API.
- Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.
- Gizmo - Microservice toolkit used by the New York Times.
- go-json-rest - Quick and easy way to setup a RESTful JSON API.
- go-rest - Small and evil REST framework for Go.
- Goa - Goa provides a holistic approach for developing remote APIs and microservices in Go.
- Golax - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more.
- Golf - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library.
- Gondola - The web framework for writing faster sites, faster.
- gongular - Fast Go web framework with input mapping/validation and (DI) Dependency Injection.
- hiboot - hiboot is a high performance web application framework with auto configuration and dependency injection support.
- Macaron - Macaron is a high productive and modular design web framework in Go.
- mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
- Microservice - The framework for the creation of microservices, written in Golang.
- neo - Neo is minimal and fast Go Web Framework with extremely simple API.
- patron - Patron is a microservice framework following best cloud practices with a focus on productivity.
- Resoursea - REST framework for quickly writing resource based services.
- REST Layer - Framework to build REST/GraphQL API on top of databases with mostly configuration over code.
- Revel - High-productivity web framework for the Go language.
- rex - Rex is a library for modular development built upon gorilla/mux, fully compatible with
net/http
. - route - Simple yet powerful HTTP request multiplexer.
- rux - Simple and fast web framework for build golang HTTP applications.
- tango - Micro & pluggable web framework for Go.
- tigertonic - Go framework for building JSON web services inspired by Dropwizard.
- traffic - Sinatra inspired regexp/pattern mux and web framework for Go.
- uAdmin - Fully featured web framework for Golang, inspired by Django.
- utron - Lightweight MVC framework for Go(Golang).
- vox - A golang web framework for humans, inspired by Koa heavily.
- WebGo - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc).
- YARF - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.
Middlewares
Actual middlewares
- client-timing - An HTTP client for Server-Timing header.
- CORS - Easily add CORS capabilities to your API.
- formjson - Transparently handle JSON input as a standard form POST.
- go-server-timing - Add/parse Server-Timing header.
- Limiter - Dead simple rate limit middleware for Go.
- ln-paywall - Go middleware for monetizing APIs on a per-request basis with the Lightning Network (Bitcoin).
- Tollbooth - Rate limit HTTP request handler.
- XFF - Handle
X-Forwarded-For
header and friends.
Libraries for creating HTTP middlewares
- alice - Painless middleware chaining for Go.
- catena - http.Handler wrapper catenation (same API as "chain").
- chain - Handler wrapper chaining with scoped data (net/context-based "middleware").
- go-wrap - Small middlewares package for net/http.
- gores - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs.
- interpose - Minimalist net/http middleware for golang.
- muxchain - Lightweight middleware for net/http.
- negroni - Idiomatic HTTP middleware for Golang.
- render - Go package for easily rendering JSON, XML, and HTML template responses.
- renderer - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go.
- rye - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context.
- stats - Go middleware that stores various information about your web application.
Routers
- alien - Lightweight and fast http router from outer space.
- bellt - A simple Go HTTP router.
- Bone - Lightning Fast HTTP Multiplexer.
- Bxog - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters.
- chi - Small, fast and expressive HTTP router built on net/context.
- fasthttprouter - High performance router forked from
httprouter
. The first router fit forfasthttp
. - FastRouter - a fast, flexible HTTP router written in Go.
- gocraft/web - Mux and middleware package in Go.
- Goji - Goji is a minimalistic and flexible HTTP request multiplexer with support for
net/context
. - GoRouter - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting
net/context
. - gowww/router - Lightning fast HTTP router fully compatible with the net/http.Handler interface.
- httprouter - High performance router. Use this and the standard http handlers to form a very high performance web framework.
- httptreemux - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.
- lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
- mux - Powerful URL router and dispatcher for golang.
- ozzo-routing - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs.
- pure - Is a lightweight HTTP router that sticks to the std "net/http" implementation.
- Siesta - Composable framework to write middleware and handlers.
- vestigo - Performant, stand-alone, HTTP compliant URL Router for go web applications.
- violetear - Go HTTP router.
- xmux - High performance muxer based on
httprouter
withnet/context
support. - xujiajun/gorouter - A simple and fast HTTP router for Go.
Windows
- d3d9 - Go bindings for Direct3D9.
- go-ole - Win32 OLE implementation for golang.
- gosddl - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL.
XML
Libraries and tools for manipulating XML.
- XML-Comp - Simple command line XML comparer that generates diffs of folders, files and tags.
- xml2map - XML to MAP converter written Golang.
- xmlwriter - Procedural XML generation API based on libxml2's xmlwriter module.
- xpath - XPath package for Go.
- xquery - XQuery lets you extract data from HTML/XML documents using XPath expression.
- zek - Generate a Go struct from XML.
Tools
Go software and plugins.
Code Analysis
- apicompat - Checks recent changes to a Go project for backwards incompatible changes.
- dupl - Tool for code clone detection.
- errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
- gcvis - Visualise Go program GC trace data in real time.
- go-checkstyle - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments.
- go-cleanarch - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
- go-critic - source code linter that brings checks that are currently not implemented in other linters.
- go-mod-outdated - An easy way to find outdated dependencies of your Go projects.
- go-outdated - Console application that displays outdated packages.
- goast-viewer - Web based Golang AST visualizer.
- GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
- goimports - Tool to fix (add, remove) your Go imports automatically.
- GolangCI - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects.
- GoLint - Golint is a linter for Go source code.
- Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
- goreturns - Adds zero-value return statements to match the func return types.
- gosimple - gosimple is a linter for Go source code that specialises on simplifying code.
- gostatus - Command line tool, shows the status of repositories that contain Go packages.
- lint - Run linters as part of go test.
- php-parser - A Parser for PHP written in Go.
- staticcheck - staticcheck is
go vet
on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#. - tarp - tarp finds functions and methods without direct unit tests in Go source code.
- unconvert - Remove unnecessary type conversions from Go source.
- unused - unused checks Go code for unused constants, variables, functions and types.
- validate - Automatically validates struct fields with tags.
Editor Plugins
- Go plugin for JetBrains IDEs - Go plugin for JetBrains IDEs.
- go-language-server - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol.
- go-mode - Go mode for GNU/Emacs.
- go-plus - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting.
- gocode - Autocompletion daemon for the Go programming language.
- goprofiling - This extension adds benchmark profiling support for the Go language to VS Code.
- GoSublime - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features.
- gounit-vim - Vim plugin for generating Go tests based on the function's or method's signature.
- theia-go-extension - Go language support for the Theia IDE.
- vim-compiler-go - Vim plugin to highlight syntax errors on save.
- vim-go - Go development plugin for Vim.
- vscode-go - Extension for Visual Studio Code (VS Code) which provides support for the Go language.
- Watch - Runs a command in an acme win on file changes.
Go Generate Tools
- generic - flexible data type for Go.
- genny - Elegant generics for Go.
- gocontracts - brings design-by-contract to Go by synchronizing the code with the documentation.
- gonerics - Idiomatic Generics in Go.
- gotests - Generate Go tests from your source code.
- gounit - Generate Go tests using your own templates.
- hasgo - Generate Haskell inspired functions for your slices.
- re2dfa - Transform regular expressions into finite state machines and output Go source code.
- TOML-to-Go - Translates TOML into a Go type in the browser instantly.
Go Tools
- colorgo - Wrapper around
go
command for colorizedgo build
output. - depth - Visualize dependency trees of any package by analyzing imports.
- gb - An easy to use project based build tool for the Go programming language.
- generator-go-lang - A Yeoman generator to get new Go projects started.
- gilbert - Build system and task runner for Go projects.
- go-callvis - Visualize call graph of your Go program using dot format.
- go-pkg-complete - Bash completion for go and wgo.
- go-swagger - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API.
- godbg - Implementation of Rusts
dbg!
macro for quick and easy debugging during development. - OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
- richgo - Enrich
go test
outputs with text decorations. - rts - RTS: response to struct. Generates Go structs from server responses.
Software Packages
Software written in Go.
DevOps Tools
- aptly - aptly is a Debian repository management tool.
- aurora - Cross-platform web-based Beanstalkd queue server console.
- awsenv - Small binary that loads Amazon (AWS) environment variables for a profile.
- Blast - A simple tool for API load testing and batch jobs.
- bombardier - Fast cross-platform HTTP benchmarking tool.
- bosun - Time Series Alerting Framework.
- DepCharge - Helps orchestrating the execution of commands across the many dependencies in larger projects.
- dogo - Monitoring changes in the source file and automatically compile and run (restart).
- drone-jenkins - Trigger downstream Jenkins jobs using a binary, docker or Drone CI.
- drone-scp - Copy files and artifacts via SSH using a binary, docker or Drone CI.
- Dropship - Tool for deploying code via cdn.
- easyssh-proxy - Golang package for easy remote execution through SSH and SCP downloading via
ProxyCommand
. - fac - Command-line user interface to fix git merge conflicts.
- gaia - Build powerful pipelines in any programming language.
- Gitea - Fork of Gogs, entirely community driven.
- gitea-github-migrator - Migrate all your GitHub repositories, issues, milestones and labels to your Gitea instance.
- go-furnace - Hosting solution written in Go. Deploy your Application with ease on AWS, GCP or DigitalOcean.
- go-selfupdate - Enable your Go applications to self update.
- gobrew - gobrew lets you easily switch between multiple versions of go.
- godbg - Web-based gdb front-end application.
- Gogs - A Self Hosted Git Service in the Go Programming Language.
- gonative - Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages.
- govvv - “go build” wrapper to easily add version information into Go binaries.
- gox - Dead simple, no frills Go cross compile tool.
- goxc - build tool for Go, with a focus on cross-compiling and packaging.
- grapes - Lightweight tool designed to distribute commands over ssh with ease.
- GVM - GVM provides an interface to manage Go versions.
- Hey - Hey is a tiny program that sends some load to a web application.
- kala - Simplistic, modern, and performant job scheduler.
- kcli - Command line tool for inspecting kafka topics/partitions/messages.
- kubernetes - Container Cluster Manager from Google.
- lstags - Tool and API to sync Docker images across different registries.
- lwc - A live-updating version of the UNIX wc command.
- manssh - manssh is a command line tool for managing your ssh alias config easily.
- Moby - Collaborative project for the container ecosystem to assemble container-based systems.
- Mora - REST server for accessing MongoDB documents and meta data.
- ostent - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB.
- Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
- Pewpew - Flexible HTTP command line stress tester.
- Pomerium - Pomerium is an identity-aware access proxy.
- Rodent - Rodent helps you manage Go versions, projects and track dependencies.
- s3gof3r - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3.
- Scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker).
- script - Making it easy to write shell-like scripts in Go for DevOps and system administration tasks.
- sg - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the response code and data between each call for specific server stress based on its previous response.
- skm - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily!
- StatusOK - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected.
- traefik - Reverse proxy and load balancer with support for multiple backends.
- Vegeta - HTTP load testing tool and library. It's over 9000!
- webhook - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server.
- Wide - Web-based IDE for Teams using Golang.
- winrm-cli - Cli tool to remotely execute commands on Windows machines.
Other Software
- borg - Terminal based search engine for bash snippets.
- boxed - Dropbox based blog engine.
- Cherry - Tiny webchat server in Go.
- Circuit - Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications.
- Comcast - Simulate bad network connections.
- confd - Manage local application configuration files using templates and data from etcd or consul.
- DDNS - Personal DDNS client with Digital Ocean Networking DNS as backend.
- Docker - Open platform for distributed applications for developers and sysadmins.
- Documize - Modern wiki software that integrates data from SaaS tools.
- drive - Google Drive client for the commandline.
- Duplicacy - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication.
- gfile - Securely transfer files between two computers, without any third party, over WebRTC.
- Go Package Store - App that displays updates for the Go packages in your GOPATH.
- go-peerflix - Video streaming torrent client.
- GoBoy - Nintendo Game Boy Color emulator written in Go.
- gocc - Gocc is a compiler kit for Go written in Go.
- GoDNS - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go.
- GoDocTooltip - Chrome extension for Go Doc sites, which shows function description as tooltip at function list.
- GoLand - Full featured cross-platform Go IDE.
- Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
- hugo - Fast and Modern Static Website Engine.
- ide - Browser accessible IDE. Designed for Go with Go.
- ipe - Open source Pusher server implementation compatible with Pusher client libraries written in GO.
- joincap - Command-line utility for merging multiple pcap files together.
- Juju - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
- Leaps - Pair programming service using Operational Transforms.
- lgo - Interactive Go programming with Jupyter. It supports code completion, code inspection and 100% Go compatibility.
- limetext - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
- LiteIDE - LiteIDE is a simple, open source, cross-platform Go IDE.
- mockingjay - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests.
- myLG - Command Line Network Diagnostic tool written in Go.
- naclpipe - Simple NaCL EC25519 based crypto pipe tool written in Go.
- nes - Nintendo Entertainment System (NES) emulator written in Go.
- orange-cat - Markdown previewer written in Go.
- Orbit - A simple tool for running commands and generating files from templates.
- peg - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
- Pipe - A small and beautiful blogging platform.
- restic - De-duplicating backup program.
- scc - Sloc Cloc and Code, a very fast accurate code counter with complexity calculations and COCOMO estimates.
- Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
- shell2http - Executing shell commands via http server (for prototyping or remote control).
- snap - Powerful telemetry framework.
- Snitch - Simple way to notify your team and many tools when someone has deployed any application via Tsuru.
- Stack Up - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers.
- syncthing - Open, decentralized file synchronization tool and protocol.
- term-quiz - Quizzes for your terminal.
- toxiproxy - Proxy to simulate network and system conditions for automated tests.
- tsuru - Extensible and open source Platform as a Service software.
- vFlow - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector.
- wellington - Sass project management tool, extends the language with sprite functions (like Compass).
Resources
Where to discover new Go libraries.
Benchmarks
- autobench - Framework to compare the performance between different Go versions.
- go-benchmark-app - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results.
- go-benchmarks - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches.
- go-http-routing-benchmark - Go HTTP request router benchmark and comparison.
- go-web-framework-benchmark - Go web framework benchmark.
- go_serialization_benchmarks - Benchmarks of Go serialization methods.
- gocostmodel - Benchmarks of common basic operations for the Go language.
- golang-sql-benchmark - Collection of benchmarks for popular Go database/SQL utilities.
- gospeed - Go micro-benchmarks for calculating the speed of language constructs.
- kvbench - Key/Value database benchmark.
- skynet - Skynet 1M threads microbenchmark.
- speedtest-resize - Compare various Image resize algorithms for the Go language.
Conferences
- Capital Go - Washington, D.C., USA.
- dotGo - Paris, France.
- GoCon - Tokyo, Japan.
- GoDays - Berlin, Germany.
- GoLab - Florence, Italy.
- GolangUK - London, UK.
- GopherChina - Shanghai, China.
- GopherCon - Denver, USA.
- GopherCon Australia - Sydney, Australia.
- GopherCon Brazil - Florianópolis, BR.
- GopherCon Europe - Reykjavik, Iceland.
- GopherCon India - Pune, India.
- GopherCon Israel - Tel Aviv, Israel.
- GopherCon Russia - Moscow, Russia.
- GopherCon Singapore - Mapletree Business City, Singapore.
- GopherCon Vietnam - Ho Chi Minh City, Vietnam.
- GothamGo - New York City, USA.
- GoWayFest - Minsk, Belarus.
E-Books
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go 101 - A book focusing on Go syntax/semantics and all kinds of details.
- Go Bootcamp
- Go Succinctly - in Persian.
- GoBooks - A curated list of Go books.
- Learning Go
- Network Programming With Go
- The Go Programming Language
- The Golang Standard Library by Example (Chinese)
- Web Application with Go the Anti-Textbook
- Writing A Compiler In Go
- Writing An Interpreter In Go
Gophers
- Free Gophers Pack - Gopher graphics pack by Maria Letta with illustrations and emotional characters in vector and raster.
- Go-gopher-Vector - Go gopher Vector Data [.ai, .svg].
- gopher-logos - adorable gopher logos.
- gopher-stickers
- gopher-vector
- gophericons
- gopherize.me - Gopherize yourself.
- gophers - Gopher artworks by Ashley McNamara.
- gophers - Free gophers.
- gophers - random gopher graphics.
- gophers - Gopher amigurumi toy pattern.
Meetups
- Basel Go Meetup
- Brisbane Gophers
- Canberra Gophers
- Go Language NYC
- Go London User Group
- Go Toronto
- Go User Group Atlanta
- GoBridge, San Francisco, CA
- GoJakarta
- Golang Amsterdam
- Golang Argentina
- Golang Baltimore, MD
- Golang Bangalore
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Bulgaria
- Golang Cardiff, UK
- Golang Copenhagen
- Golang DC, Arlington, VA
- Golang Dorset, UK
- Golang Gurgaon, India
- Golang Hamburg - Germany
- Golang Israel
- Golang Joinville - Brazil
- Golang Korea
- Golang Lima - Peru
- Golang Lyon
- Golang Marseille
- Golang Melbourne
- Golang Mountain View
- Golang New York
- Golang Paris
- Golang Pune
- Golang Singapore
- Golang Stockholm
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Vancouver, BC
- Golang Казань
- Golang Москва
- Golang Питер
- GoSF - San Francisco, CA
- Istanbul Golang
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Women Who Go - San Francisco, CA
Add the group of your city/country here (send PR)
Websites
- Awesome Go @LibHunt - Your go-to Go Toolbox.
- Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
- awesome-awesomeness - List of other amazingly awesome lists.
- CodinGame - Learn Go by solving interactive tasks using small games as practical examples.
- Go Blog - The official Go blog.
- Go Challenge - Learn Go by solving problems and getting feedback from Go experts.
- Go Community on Hashnode - Community of Gophers on Hashnode.
- Go Forum - Forum to discuss Go.
- Go In 5 Minutes - 5 minute screencasts focused on getting one thing done.
- Go Projects - List of projects on the Go community wiki.
- Go Report Card - A report card for your Go package.
- gocryforhelp - Collection of Go projects that needs help. Good place to start your open-source way in Go.
- godoc.org - Documentation for open source Go packages.
- Golang Flow - Post Updates, News, Packages and more.
- Golang News - Links and news about Go programming.
- golang-graphics - Collection of Go images, graphics, and art.
- golang-nuts - Go mailing list.
- Google Plus Community - The Google+ community for #golang enthusiasts.
- Gopher Community Chat - Join Our New Slack Community For Gophers (Understand how it came).
- Gophercises - Free coding exercises for budding gophers.
- gowalker.org - Go Project API documentation.
- justforfunc - Youtube channel dedicated to Go programming language tips and tricks, hosted by Francesc Campoy @francesc.
- r/Golang - News about Go.
- studygolang - The community of studygolang in China.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- TutorialEdge - Golang
Tutorials
- 50 Shades of Go - Traps, Gotchas, and Common Mistakes for New Golang Devs.
- A Guide to Golang E-Commerce - Building a Golang site for e-commerce (demo included).
- A Tour of Go - Interactive tour of Go.
- Build web application with Golang - Golang ebook intro how to build a web app with golang.
- Building Go Web Applications and Microservices Using Gin - Get familiar with Gin and find out how it can help you reduce boilerplate code and build a request handling pipeline.
- Caching Slow Database Queries - How to cache slow database queries.
- Canceling MySQL - How to cancel MySQL queries.
- Ethereum Development with Go - A little e-book on Ethereum Development with Go.
- Games With Go - A video series teaching programming and game development.
- Go By Example - Hands-on introduction to Go using annotated example programs.
- Go Cheat Sheet - Go's reference card.
- Go database/sql tutorial - Introduction to database/sql.
- Go Playground for iOS - Interactively edit & play Go snippets on your mobile device.
- Go WebAssembly Tutorial - Building a Simple Calculator
- Golang for Node.js Developers - Examples of Golang compared to Node.js for learning.
- Golangbot - Tutorials to get started with programming in Go.
- Hackr.io - Learn Go from the best online golang tutorials submitted & voted by the golang programming community.
- How to Use Godog for Behavior-driven Development in Go - Get started with Godog — a Behavior-driven development framework for building and testing Go applications.
- Learn Go with TDD - Learn Go with test-driven development.
- Learning Golang - From zero to hero - Getting started with golang for beginner.
- package main - YouTube channel about Programming in Go.
- The world’s easiest introduction to WebAssembly with Golang
- Working with Go - Intro to go for experienced programmers.
- Your basic Go - Huge collection of tutorials and how to's.
原文:https://github.com/avelino/awesome-go
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 80 次浏览
【Javascript精选】一系列很棒的的浏览器端JavaScript库,资源
A collection of awesome browser-side JavaScript libraries, resources and shiny things.
- Awesome JavaScript
- Worth Reading
- Other Awesome Lists
- Contributing
Package Managers
Host the JavaScript libraries and provide tools for fetching and packaging them.
- npm - npm is the package manager for JavaScript.
- Bower - A package manager for the web.
- component - Client package management for building better web applications.
- spm - Brand new static package manager.
- jam - A package manager using a browser-focused and RequireJS compatible repository.
- jspm - Frictionless browser package management.
- Ender - The no-library library.
- volo - Create front end projects from templates, add dependencies, and automate the resulting projects.
- Duo - Next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code quick and painless.
- yarn - Fast, reliable, and secure dependency management.
Loaders
Module or loading system for JavaScript.
- RequireJS - A file and module loader for JavaScript.
- browserify - Browser-side require() the node.js way.
- SeaJS - A Module Loader for the Web.
- HeadJS - The only script in your HEAD.
- curl - A small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
- lazyload - Tiny, dependency-free async JavaScript and CSS loader.
- script.js - Asynchronous JavaScript loader and dependency manager.
- systemjs - AMD, CJS & ES6 spec-compliant module loader.
- LodJS - Module loader based on AMD.
- ESL - Module loader browser first, support lazy define and AMD.
- modulejs - Lightweight JavaScript module system.
Bundlers
- browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.
- webpack - Packs CommonJs/AMD modules for the browser.
- Rollup - Next-generation ES6 module bundler.
- Brunch - Fast front-end web app build tool with simple declarative config.
- Parcel - Blazing fast, zero configuration web application bundler.
Testing Frameworks
Frameworks
- mocha - Simple, flexible, fun JavaScript test framework for node.js & the browser.
- jasmine - DOM-less simple JavaScript testing framework.
- qunit - An easy-to-use JavaScript Unit Testing framework.
- jest - Painless JavaScript Unit Testing.
- prova - Node & Browser test runner based on Tape and Browserify
- DalekJS - Automated cross browser functional testing with JavaScript
- Protractor - Protractor is an end-to-end test framework for AngularJS applications.
- tape - Tap-producing test harness for node and browsers.
- TestCafe - Automated browser testing for the modern web development stack.
- ava - ? Futuristic JavaScript test runner
Assertion
- chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Enzyme - Enzyme is a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components' output.
- react testing library - Simple and complete React DOM testing utilities that encourage good testing practices.
- Sinon.JS - Test spies, stubs, and mocks for JavaScript.
- expect.js - Minimalistic BDD-style assertions for Node.JS and the browser.
Coverage
- istanbul - Yet another JS code coverage tool.
- blanket - A simple code coverage library for JavaScript. Designed to be easy to install and use, for both browser and nodejs.
- JSCover - JSCover is a tool that measures code coverage for JavaScript programs.
Runner
- phantomjs - Scriptable Headless WebKit.
- slimerjs - A PhantomJS-like tool running Gecko.
- casperjs - Navigation scripting & testing utility for PhantomJS and SlimerJS.
- zombie - Insanely fast, full-stack, headless browser testing using node.js.
- totoro - A simple and stable cross-browser testing tool.
- karma - Spectacular Test Runner for JavaScript.
- nightwatch - UI automated testing framework based on node.js and selenium webdriver.
- intern - A next-generation code testing stack for JavaScript.
- yolpo - A statement-by-statement JavaScript interpreter in the browser.
QA Tools
- prettier - Prettier is an opinionated code formatter.
- JSHint - JSHint is a tool that helps to detect errors and potential problems in your JavaScript code.
- jscs - JavaScript Code Style checker.
- jsfmt - For formatting, searching, and rewriting JavaScript.
- jsinspect - Detect copy-pasted and structurally similar code.
- buddy.js - Magic number detection for JavaScript.
- ESLint - A fully pluggable tool for identifying and reporting on patterns in JavaScript.
- JSLint - High-standards, strict & opinionated code quality tool, aiming to keep only good parts of the language.
- JavaScript Standard Style - Opinionated, no-configuration style guide, style checker, and formatter
MVC Frameworks and Libraries
- angular.js - HTML enhanced for web apps.
- aurelia - A JavaScript client framework for mobile, desktop and web.
- backbone - Give your JS App some Backbone with Models, Views, Collections, and Events.
- ember.js - A JavaScript framework for creating ambitious web applications.
- meteor - An ultra-simple, database-everywhere, data-on-the-wire, pure-javascript web framework.
- ractive - Next-generation DOM manipulation.
- vue - Intuitive, fast & composable MVVM for building interactive interfaces.
- knockout - Knockout makes it easier to create rich, responsive UIs with JavaScript.
- spine - Lightweight MVC library for building JavaScript applications.
- espresso.js - A minimal JavaScript library for crafting user interfaces.
- canjs - Can do JS, better, faster, easier.
- react - A library for building user interfaces. It's declarative, efficient, and extremely flexible. Works with a Virtual DOM.
- hyperapp - 1kb JavaScript library for building frontend applications.
- preact - Fast 3kb React alternative with the same ES6 API. Components & Virtual DOM.
- nativescript - Build truly native cross-platform iOS and Android apps with JavaScript.
- react-native - A framework for building native apps with React.
- riot - React-like library, but with very small size.
- thorax - Strengthening your Backbone.
- chaplin - An architecture for JavaScript applications using the Backbone.js library.
- marionette - A composite application library for Backbone.js that aims to simplify the construction of large scale JavaScript applications.
- ripple - A tiny foundation for building reactive views.
- rivets - Lightweight and powerful data binding + templating solution.
- derby - MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.
- derby-awesome - A collection of awesome derby components
- way.js - Simple, lightweight, persistent two-way databinding.
- mithril.js - Mithril is a client-side MVC framework (Light-weight, Robust, Fast).
- jsblocks - jsblocks is better MV-ish framework.
- LiquidLava - Transparent MVC framework for building user interfaces.
- feathers - A minimalist real-time JavaScript framework for tomorrow's apps.
- Keo - Functional stateless React components with Shadow DOM support.
- atvjs - Blazing fast Apple TV application development using pure JavaScript.
Node-Powered CMS Frameworks
- KeystoneJS - powerful CMS and web app framework.
- Reaction Commerce - reactive CMS, real-time architecture and design.
- Ghost - simple, powerful publishing platform.
- Apostrophe - CMS with content editing and essential services.
- We.js - framework for real time apps, sites or blogs.
- Hatch.js - CMS platform with social features.
- TaracotJS - fast and minimalist CMS based on Node.js.
- Nodizecms - CMS for CoffeeScript lovers.
- Cody - CMS with WSYWYG editor.
- PencilBlue - CMS and blogging platform.
Templating Engines
Templating engines allow you to perform string interpolation.
- mustache.js - Minimal templating with {{mustaches}} in JavaScript.
- handlebars.js - An extension to the Mustache templating language.
- nunjucks - A rich and powerful templating language for JavaScript from Mozilla.
- hogan.js - A compiler for the Mustache templating language.
- doT - The fastest + concise JavaScript template engine for nodejs and browsers.
- dustjs - Asynchronous templates for the browser and node.js.
- eco - Embedded CoffeeScript templates.
- JavaScript-Templates - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies.
- t.js - A tiny JavaScript templating framework in ~400 bytes gzipped.
- Pug - Robust, elegant, feature rich template engine for nodejs. (formerly known as Jade)
- EJS - Effective JavaScript templating.
- xtemplate - eXtensible Template Engine lib for node and the browser
- marko - A fast, lightweight, HTML-based templating engine for Node.js and the browser with async, streaming, custom tags and CommonJS modules as compiled output.
- swig - A simple, powerful, and extendable Node.js and browser-based JavaScript template engine.
Articles and Posts
- The JavaScript that you should know - Article about concepts of JavaScript Functional.
- How JavaScript works - A series of articles about the building blocks of JavaScript.
Data Visualization
Data visualization tools for the web.
- d3 - A JavaScript visualization library for HTML and SVG.
- metrics-graphics - A library optimized for concise, principled data graphics and layouts.
- pykcharts.js - Well designed d3.js charting without the complexity of d3.js.
- three.js - JavaScript 3D library.
- Chart.js - Simple HTML5 Charts using the tag.
- paper.js - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas.
- fabric.js - JavaScript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser.
- peity - Progressive bar, line and pie charts.
- raphael - JavaScript Vector Library.
- echarts - Enterprise Charts.
- vis - Dynamic, browser-based visualization library.
- two.js - A renderer agnostic two-dimensional drawing api for the web.
- g.raphael - Charts for Raphaël.
- sigma.js - A JavaScript library dedicated to graph drawing.
- arbor - A graph visualization library using web workers and jQuery.
- cubism - A D3 plugin for visualizing time series.
- dc.js - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js
- vega - A visualization grammar.
- processing.js - Processing.js makes your data visualizations work using web standards and without any plug-ins.
- envisionjs - Dynamic HTML5 visualization.
- rickshaw - JavaScript toolkit for creating interactive real-time graphs.
- flot - Attractive JavaScript charts for jQuery.
- morris.js - Pretty time-series line graphs.
- nvd3 - Build re-usable charts and chart components for d3.js.
- svg.js - A lightweight library for manipulating and animating SVG.
- heatmap.js - JavaScript Library for HTML5 canvas based heatmaps.
- jquery.sparkline - A plugin for the jQuery JavaScript library to generate small sparkline charts directly in the browser.
- xCharts - A D3-based library for building custom charts and graphs.
- trianglify - Low poly style background generator with d3.js.
- d3-cloud - Create word clouds in JavaScript.
- d4 - A friendly reusable charts DSL for D3.
- dimple.js - Easy charts for business analytics powered by d3.
- chartist-js - Simple responsive charts.
- epoch - A general purpose real-time charting library.
- c3 - D3-based reusable chart library.
- BabylonJS - A framework for building 3D games with HTML 5 and WebGL.
- recharts - Redefined chart library built with React and D3.
- GraphicsJS - A lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology.
- mxGraph - Diagramming library that enables interactive graph and charting applications to be quickly created that run natively in any major browser that is supported by its vendor.
There're also some great commercial libraries, like amchart, anychart, plotly, and highchart.
Timeline
- TimelineJS v3 - A Storytelling Timeline built in JavaScript.
- timesheet.js - JavaScript library for simple HTML5 & CSS3 time sheets.
Spreadsheet
- HANDSONTABLE - Handsontable is a JavaScript/HTML5 Spreadsheet Library for Developers
Editors
- ace - Ace (Ajax.org Cloud9 Editor).
- CodeMirror - In-browser code editor.
- esprima - ECMAScript parsing infrastructure for multipurpose analysis.
- quill - A cross browser rich text editor with an API.
- medium-editor - Medium.com WYSIWYG editor clone.
- pen - enjoy live editing (+markdown).
- jquery-notebook - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium.
- bootstrap-wysiwyg - Tiny bootstrap-compatible WYSIWYG rich text editor.
- ckeditor-releases - The best web text editor for everyone.
- editor - A markdown editor. still on development.
- EpicEditor - An embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more.
- jsoneditor - A web-based tool to view, edit and format JSON.
- vim.js - JavaScript port of Vim with a persistent
~/.vimrc
. - Squire - HTML5 rich text editor.
- TinyMCE - The JavaScript Rich Text editor.
- trix - A rich text editor for everyday writing. By Basecamp.
- Trumbowyg - A lightweight and amazing WYSIWYG JavaScript editor.
- Draft.js - A React framework for building text editors.
- bootstrap-wysihtml5 - Simple, beautiful wysiwyg editor
- wysihtml5 - Open source rich text editor based on HTML5 and the progressive-enhancement approach. Uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles.
- raptor-editor - Raptor, an HTML5 WYSIWYG content editor!
- popline - Popline is an HTML5 Rich-Text-Editor Toolbar.
Documentation
- DevDocs is an all-in-one API documentation reader with a fast, organized, and consistent interface.
- dexy is a free-form literate documentation tool for writing any kind of technical document incorporating code.
- docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
- styledocco generates documentation and style guide documents from your stylesheets.
- Ronn builds manuals. It converts simple, human readable textfiles to roff for terminal display, and also to HTML for the web.
- dox is a JavaScript documentation generator written with node. Dox no longer generates an opinionated structure or style for your docs, it simply gives you a JSON representation, allowing you to use markdown and JSDoc-style tags.
- jsdox is a JSDoc3 to Markdown documentation generator.
- ESDoc is a good documentation generator for JavaScript.
- YUIDoc is a Node.js application that generates API documentation from comments in source, using a syntax similar to tools like Javadoc and Doxygen.
- coddoc is a jsdoc parsing library. Coddoc is different in that it is easily extensible by allowing users to add tag and code parsers through the use of coddoc.addTagHandler and coddoc.addCodeHandler. coddoc also parses source code to be used in APIs.
- sphinx a tool that makes it easy to create intelligent and beautiful documentation
- Using JSDoc
- Beautiful docs is a documentation viewer based on markdown files.
- documentation.js - API documentation generator with support for ES2015+ and flow annotation.
- jsduck - API documentation generator made for Sencha JavaScript frameworks, but can be used for other frameworks too.
Files
Libraries for working with files.
- Papa Parse - A powerful CSV library that supports parsing CSV files/strings and also exporting to CSV.
- jBinary - High-level I/O (loading, parsing, manipulating, serializing, saving) for binary files with declarative syntax for describing file types and data structures.
- diff2html - Git diff output parser and pretty HTML generator.
- jsPDF - JavaScript PDF generation.
- PDF.js - PDF Reader in JavaScript.
Functional Programming
Functional programming libraries to extend JavaScript’s capabilities.
- underscore - JavaScript's utility _ belt.
- lodash - A utility library delivering consistency, customization, performance, & extras.
- Sugar - A JavaScript library for working with native objects.
- lazy.js - Like Underscore, but lazier.
- ramda - A practical functional library for JavaScript programmers.
- mout - Modular JavaScript Utilities.
- mesh - Streamable data synchronization utility.
- preludejs - Hardcore Functional Programming for JavaScript.
Reactive Programming
Reactive programming libraries to extend JavaScript’s capabilities.
- RxJs - The Reactive Extensions for JavaScript.
- Bacon - FRP (functional reactive programming) library for JavaScript.
- Kefir - FRP library for JavaScript inspired by Bacon.js and RxJS with focus on high performance and low memory consumption.
- Highland - Re-thinking the JavaScript utility belt, Highland manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams.
- Most.js - high performance FRP library.
- MobX - TFRP library for simple, scalable state management.
- Cycle.js - A functional and reactive JavaScript library for cleaner code.
Data Structure
Data structure libraries to build a more sophisticated application.
- immutable-js - Immutable Data Collections including Sequence, Range, Repeat, Map, OrderedMap, Set and a sparse Vector.
- mori - A library for using ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript.
- buckets - A complete, fully tested and documented data structure library written in JavaScript.
- hashmap - Simple hashmap implementation that supports any kind of keys.
Date
Date Libraries.
- moment - Parse, validate, manipulate, and display dates in JavaScript.
- moment-timezone - Timezone support for moment.js.
- jquery-timeago - A jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago").
- timezone-js - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.
- date - Date() for humans.
- ms.js - Tiny millisecond conversion utility.
- countdown.js - Super simple countdowns.
- timeago.js - Simple library (less then 2kb) used to format date with
*** time ago
statement. - fecha - Lightweight date formatting and parsing (~2KB). Meant to replace parsing and formatting functionality of moment.js.
- date-fns - Modern JavaScript date utility library.
- map-countdown - A browser countdown built on top of the Google Maps
String
String Libraries.
- voca - The ultimate JavaScript string library
- selecting - A library that allows you to access the text selected by the user.
- underscore.string - String manipulation extensions for Underscore.js JavaScript library.
- string.js - Extra JavaScript string methods.
- he - A robust HTML entity encoder/decoder written in JavaScript.
- multiline - Multiline strings in JavaScript.
- query-string - Parse and stringify URL query strings.
- URI.js - JavaScript URL mutation library.
- jsurl - Lightweight URL manipulation with JavaScript.
- sprintf.js - A sprintf implementation.
- url-pattern - Easier than regex string matching patterns for urls and other strings. Turn strings into data or data into strings.
Number
- Numeral-js - A JavaScript library for formatting and manipulating numbers.
- chance.js - Random generator helper in JavaScript. Can generate numbers, strings etc.
- odometer - Smoothly transitions numbers with ease.
- accounting.js - A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.
- money.js - A tiny (1kb) JavaScript currency conversion library, for web & nodeJS.
- Fraction.js - A rational number library for JavaScript.
- Complex.js - A complex number library for JavaScript.
- Polynomial.js - A polynomials library for JavaScript.
Storage
- store.js - LocalStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood.
- localForage - Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.
- jStorage - jStorage is a simple key/value database to store data on browser side.
- cross-storage - Cross domain local storage, with permissions.
- basket.js - A script and resource loader for caching & loading scripts with localStorage.
- bag.js - A caching script and resource loader, similar to basket.js, but with additional k/v interface and localStorage / websql / indexedDB support.
- basil.js - The missing JavaScript smart persistent layer.
- jquery-cookie - A simple, lightweight jQuery plugin for reading, writing and deleting cookies.
- js-cookie - A simple, lightweight JavaScript API for handling browser cookies.
- Cookies - JavaScript Client-Side Cookie Manipulation Library.
- DB.js - Promise based IndexDB Wrapper library.
- lawnchair.js - Simple client-side JSON storage.
- sql.js - SQLite compiled to JavaScript through Emscripten.
Color
- randomColor - A color generator for JavaScript.
- chroma.js - JavaScript library for all kinds of color manipulations.
- color - JavaScript color conversion and manipulation library.
- colors - Smarter defaults for colors on the web.
- PleaseJS - JavaScript Library for creating random pleasing colors and color schemes.
- TinyColor - Fast, small color manipulation and conversion for JavaScript.
- Vibrant.js - Extract prominent colors from an image.
I18n And L10n
Localization (l10n) and internationalization (i18n) JavaScript libraries.
- i18next - internationalisation (i18n) with JavaScript the easy way.
- polyglot - tiny i18n helper library.
- babelfish - i18n with human friendly API and built in plurals support.
- ttag - Modern javascript i18n localization library based on ES6 tagged templates and the good old GNU gettext.
Control Flow
- async - Async utilities for node and the browser.
- q - A tool for making and composing asynchronous promises in JavaScript.
- step - An async control-flow library that makes stepping through logic easy.
- contra - Asynchronous flow control with a functional taste to it.
- Bluebird - fully featured promise library with focus on innovative features and performance.
- when - A solid, fast Promises/A+ and when() implementation, plus other async goodies.
- ObjectEventTarget - Provide a prototype that add support to event listeners (with same behavior of EventTarget from DOMElements available on browsers).
Routing
- director - A tiny and isomorphic URL router for JavaScript.
- page.js - Micro client-side router inspired by the Express router (~1200 bytes).
- pathjs - Simple, lightweight routing for web browsers.
- crossroads - JavaScript Routes.
- davis.js - RESTful degradable JavaScript routing using pushState.
Security
- DOMPurify - A DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG.
- js-xss - Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist.
- xss-filters - Secure XSS Filters by Yahoo.
Log
- log - Console.log with style.
- Conzole - A debug panel built in JavaScript that wraps JavaScript native console object methods and functionality in a panel displayed inside the page.
- console.log-wrapper - Log to the console in any browser with clarity.
- loglevel - Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods.
- minilog – Lightweight client & server-side logging with Stream-API backends.
- storyboard - Universal logging library + Chrome extension; it lets you see all client and server tasks triggered by a user action in a single place.
RegExp
- RegEx101 - Online regex tester and debugger for JavaScript. Also supports Python, PHP and PCRE.
- RegExr - HTML/JS based tool for creating, testing, and learning about Regular Expressions.
- RegExpBuilder - Create regular expressions using chained methods.
Voice Command
- annyang - A JavaScript library for adding voice commands to your site, using speech recognition.
- voix.js - A JavaScript library to add voice commands to your sites, apps or games.
API
- axios - Promise based HTTP client for the browser and node.js.
- bottleneck - A powerful rate limiter that makes throttling easy.
- oauth-signature-js - JavaScript OAuth 1.0a signature generator for node and the browser.
- amygdala - RESTful HTTP client for JavaScript powered web applications.
- jquery.rest - A jQuery plugin for easy consumption of RESTful APIs.
- Rails Ranger - An opinionated REST client for Ruby on Rails APIs.
Streaming
- Tailor - Streaming layout service for front-end microservices, inspired by Facebook's BigPipe.
Vision Detection
- tracking.js - A modern approach for Computer Vision on the web.
- ocrad.js - OCR in JavaScript via Emscripten.
Machine Learning
- ConvNetJS - Deep Learning in JavaScript. Train Convolutional Neural Networks (or ordinary ones) in your browser.
- DN2A - Digital Neural Networks Architecture.
- Brain.js - Neural networks in JavaScript.
- Mind.js - A flexible neural network library.
- Synaptic.js - Architecture-free neural network library for node.js and the browser.
- TensorFlow.js - A JavaScript library for training and deploying ML models in the browser and on Node.js.
- ml5.js - Friendly Machine Learning for the Web.
Browser Detection
- bowser - a browser detector.
Benchmark
- benchmark.js - A benchmarking library. As used on jsPerf.com.
- matcha - A caffeine driven, simplistic approach to benchmarking.
Code highlighting
- Highlight.js - JavaScript syntax highlighter.
- PrismJS - Lightweight, robust, elegant syntax highlighting.
Loading Status
Libraries for indicate load status.
- Mprogress.js - Create Google Material Design progress linear bars.
- NProgress - Slim progress bars for Ajax'y applications.
- Spin.js - A spinning activity indicator.
- progress.js - Create and manage progress bar for every objects on the page.
- progressbar.js - Beautiful and responsive progress bars with animated SVG paths.
- pace - Automatically add a progress bar to your site.
- topbar - Tiny & beautiful site-wide progress indicator.
- nanobar - Very lightweight progress bars. No jQuery.
- PageLoadingEffects - Modern ways of revealing new content using SVG animations.
- SpinKit - A collection of loading indicators animated with CSS.
- Ladda - Buttons with built-in loading indicators.
- css-loaders - A collection of loading spinners animated with CSS
Besides libraries, there're Collection on Codepen, and generators like Ajaxload, Preloaders and CSSLoad.
Validation
- Parsley.js - Validate your forms, frontend, without writing a single line of JavaScript.
- jquery-validation - jQuery Validation Plugin.
- validator.js - String validation and sanitization.
- validate.js - Lightweight JavaScript form validation library inspired by CodeIgniter.
- validatr - Cross Browser HTML5 Form Validation.
- FormValidation - The best jQuery plugin to validate form fields. Formerly BootstrapValidator.
- is.js - Check types, regexps, presence, time and more.
- FieldVal - multipurpose validation library. Supports both sync and async validation.
Keyboard Wrappers
- mousetrap - Simple library for handling keyboard shortcuts in JavaScript.
- keymaster - A simple micro-library for defining and dispatching keyboard shortcuts.
- Keypress - A keyboard input capturing utility in which any key can be a modifier key.
- KeyboardJS - A JavaScript library for binding keyboard combos without the pain of key codes and key combo conflicts.
- jquery.hotkeys - jQuery Hotkeys lets you watch for keyboard events anywhere in your code supporting almost any key combination.
- jwerty - Awesome handling of keyboard events.
Tours And Guides
- intro.js - A better way for new feature introduction and step-by-step users guide for your website and project.
- shepherd - Guide your users through a tour of your app.
- bootstrap-tour - Quick and easy product tours with Twitter Bootstrap Popovers.
- tourist - Simple, flexible tours for your app.
- chardin.js - Simple overlay instructions for your apps.
- pageguide - An interactive guide for web page elements using jQuery and CSS3.
- hopscotch - A framework to make it easy for developers to add product tours to their pages.
- joyride - jQuery feature tour plugin.
- focusable - Set a spotlight focus on DOM element adding a overlay layer to the rest of the page.
Notifications
- iziToast - Elegant, responsive, flexible and lightweight notification plugin with no dependencies.
- messenger - Growl-style alerts and messages for your app.
- noty - jQuery notification plugin.
- pnotify - JavaScript notifications for Bootstrap, jQuery UI, and the Web Notifications Draft.
- toastr - Simple JavaScript toast notifications.
- humane-js - A simple, modern, browser notification system.
- smoke.js - Framework-agnostic styled alert system for JavaScript.
- notie - Simple notifications and inputs with no dependencies.
Sliders
- Swiper - Mobile touch slider and framework with hardware accelerated transitions.
- slick - The last carousel you'll ever need.
- slidesJs - Is a responsive slideshow plug-in for JQuery(1.7.1+) with features like touch and CSS3 transitions
- FlexSlider - An awesome, fully responsive jQuery slider plugin.
- unslider - The simplest jQuery slider there is.
- sly - JavaScript library for one-directional scrolling with item based navigation support.
- vegas - A jQuery plugin to add beautiful fullscreen backgrounds to your webpages. It even allows Slideshows.
- Sequence - CSS animation framework for creating responsive sliders, presentations, banners, and other step-based applications.
- reveal.js - A framework for easily creating beautiful presentations using HTML.
- impress.js - It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com.
- bespoke.js - DIY Presentation Micro-Framework
- Strut - Strut - An Impress.js and Bespoke.js Presentation Editor
- PhotoSwipe - JavaScript image gallery for mobile and desktop, modular, framework independent.
- jcSlider - A responsive slider jQuery plugin with CSS animations.
- basic-jquery-slider - Simple to use, simple to theme, simple to customise.
- jQuery.adaptive-slider - A jQuery plugin for a slider with adaptive colored figcaption and navigation.
- slidr - add some slide effects.
- Flickity - Touch, responsive, flickable galleries.
- Glide.js - Responsive and touch-friendly jQuery slider. It's simple, lightweight and fast.
- jQuery.adaptive-slider - A jQuery plugin for a slider with adaptive colored figcaption and navigation.
- Embla Carousel - An extensible low level carousel for the web, written in TypeScript.
Range Sliders
- Ion.RangeSlider - Powerful and easily customizable range slider with many options and skin support.
- jQRangeSlider - A JavaScript slider selector that supports dates.
- noUiSlider - A lightweight, highly customizable range slider without bloat.
- rangeslider.js - HTML5 input range slider element polyfill.
Form Widgets
Input
- typeahead.js - A fast and fully-featured autocomplete library.
- tag-it - A jQuery UI plugin to handle multi-tag fields as well as tag suggestions/autocomplete.
- At.js - Add GitHub like mentions autocomplete to your application.
- Placeholders.js - A JavaScript polyfill for the HTML5 placeholder attribute.
- fancyInput - Makes typing in input fields fun with CSS3 effects.
- jQuery-Tags-Input - Magically convert a simple text input into a cool tag list with this jQuery plugin.
- vanilla-masker - A pure JavaScript mask input.
- Ion.CheckRadio - jQuery plugin for styling checkboxes and radio-buttons. With skin support.
- awesomplete - Ultra lightweight, usable, beautiful autocomplete with zero dependencies. - http://leaverou.github.io/awesomplete
Calendar
- pickadate.js - The mobile-friendly, responsive, and lightweight jQuery date & time input picker.
- bootstrap-datepicker - A datepicker for @twitter bootstrap forked from Stefan Petre's (of eyecon.ro), improvements by @eternicode.
- Pikaday - A refreshing JavaScript Datepicker — lightweight, no dependencies, modular CSS.
- fullcalendar - Full-sized drag & drop event calendar (jQuery plugin).
- rome - A customizable date (and time) picker. Dependency free, opt-in UI.
- datedropper - datedropper is a jQuery plugin that provides a quick and easy way to manage dates for input fields.
Select
- selectize.js - Selectize is the hybrid of a textbox and select box. It's jQuery based and it has autocomplete and native-feeling keyboard navigation; useful for tagging, contact lists, etc.
- select2 - a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
- chosen - A library for making long, unwieldy select boxes more friendly.
File Uploader
- jQuery-File-Upload - File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery.
- dropzone - Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars.
- flow.js - A JavaScript library providing multiple simultaneous, stable, fault-tolerant and resumable/restartable file uploads via the HTML5 File API.
- fine-uploader - Multiple file upload plugin with progress-bar, drag-and-drop, direct-to-S3 uploading.
- FileAPI - A set of JavaScript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.
- plupload - A JavaScript API for dealing with file uploads it supports features like multiple file selection, file type filtering, request chunking, client side image scaling and it uses different runtimes to achieve this such as HTML 5, Silverlight and Flash.
Other
- form - jQuery Form Plugin.
- Garlic.js - Automatically persist your forms' text and select field values locally, until the form is submitted.
- Countable - A JavaScript function to add live paragraph-, word- and character-counting to an HTML element.
- card - Make your credit card form better in one line of code.
- stretchy - Form element autosizing, the way it should be.
- analytics - A lightweight, extendable analytics library designed to work with any third-party analytics provider to track page views, custom events, & identify users.
Tips
- tipsy - Facebook-style tooltips plugin for jQuery.
- opentip - An open source JavaScript tooltip based on the prototype framework.
- qTip2 - Pretty powerful tooltips.
- tooltipster - A jQuery tooltip plugin.
- simptip - A simple CSS tooltip made with Sass.
- jquery-popup-overlay - jQuery plugin for responsive and accessible modal windows and tooltips.
- toolbar - A tooltip style toolbar jQuery plugin
- hint.css - A tooltip library in CSS for your lovely websites.
Modals and Popups
- Magnific-Popup - Light and responsive lightbox script with focus on performance.
- jquery-popbox - jQuery PopBox UI Element.
- jquery.avgrund.js - A jQuery plugin with new modal concept for popups.
- vex - A modern dialog library which is highly configurable and easy to style.
- bootstrap-modal - Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.
- css-modal - A modal built out of pure CSS.
- jquery-popup-overlay - jQuery plugin for responsive and accessible modal windows and tooltips.
- SweetAlert - An awesome replacement for JavaScript's alert.
- baguetteBox.js - Simple and easy to use lightbox script written in pure JavaScript.
- colorbox - A light-weight, customizable lightbox plugin for jQuery.
- fancyBox - A tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
- swipebox - A touchable jQuery lightbox
- jBox - jBox is a powerful and flexible jQuery plugin, taking care of all your popup windows, tooltips, notices and more.
Scroll
- scrollMonitor - A simple and fast API to monitor elements as you scroll.
- headroom - Give your pages some headroom. Hide your header until you need it.
- onepage-scroll - Create an Apple-like one page scroller website (iPhone 5S website) with One Page Scroll plugin.
- iscroll - iScroll is a high performance, small footprint, dependency free, multi-platform JavaScript scroller.
- skrollr - Stand-alone parallax scrolling library for mobile (Android + iOS) and desktop. No jQuery.
- parallax - Parallax Engine that reacts to the orientation of a smart device.
- stellar.js - Parallax scrolling made easy.
- plax - jQuery powered parallaxing.
- jparallax - jQuery plugin for creating interactive parallax effect.
- fullPage - A simple and easy to use plugin to create fullscreen scrolling websites (also known as single page websites).
- ScrollMenu - A new interface to replace old boring scrollbar.
- Clusterize.js - Tiny vanilla JS plugin to display large data sets easily.
- simpleParallax - Simple and tiny JavaScript library to add parallax animations on any images
Menu
- jQuery-menu-aim - jQuery plugin to fire events when user's cursor aims at particular dropdown menu items. For making responsive mega dropdowns like Amazon's.
- jQuery contextMenu - contextMenu manager.
- Slideout - A responsive touch slideout navigation menu for mobile web apps.
- Slide and swipe - A sliding swipe menu that works with touchSwipe library.
Table/Grid
- jTable - A jQuery plugin to create AJAX based CRUD tables.
- DataTables - (jQuery plug-in) It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table.
- Tabulator - (jQuery plug-in) An extremely flexible library that create tables with a range of interactive features from any JSON data source or existing HTML table.
- Bootstrap Table - An Extension to the popular Bootstrap framework for creating tables that fit the style of your site with no need for additional markup.
- floatThead - (jQuery plug-in) lock any table's header while scrolling within the body. Works on any table and requires no custom html or css.
- Masonry - A cascading grid layout library.
- Packery - A grid layout library that uses a bin-packing algorithm. Useable for draggable layouts.
- Isotope - A filterable, sortable, grid layout library. Can implement Masonry, Packery, and other layouts.
- flexboxgrid - Grid based on CSS3 flexbox.
Frameworks
- Semantic UI - UI Kit with lots of themes and elements.
- w2ui - A set of jQuery plugins for front-end development of data-driven web applications.
- fluidity - The worlds smallest fully-responsive css framework.
- Ink - An HTML5/CSS3 framework used at SAPO for fast and efficient website design and prototyping.
Boilerplates
- html5-boilerplate - A professional front-end template for building fast, robust, and adaptable web apps or sites.
- mobile-boilerplate - A front-end template that helps you build fast, modern mobile web apps.
- webplate - An awesome front-end framework that lets you stay focused on building your site or app while remaining really easy to use.
- Cerberus - A few simple, but solid patterns for responsive HTML emails. Even in Outlook.
- full-page-intro-and-navigation - An intro page with a full width background image, a bold animated menu and an iOS-like blurred effect behind the navigation.
- Fluid-Squares - A fluid grid of square units.
- Mobile-First-RWD - An example of a mobile-first responsive web design.
- this-is-responsive - This Is Responsive.
- npm run-scripts Task automation with NPM run-scripts.
Gesture
- hammer.js - A JavaScript library for multi-touch gestures.
- touchemulator - Emulate touch input on your desktop.
- Dragula - Drag and drop so simple it hurts.
Maps
- Leaflet - JavaScript library for mobile-friendly interactive maps.
- Cesium - Open Source WebGL virtual globe and map engine.
- gmaps - The easiest way to use Google Maps.
- polymaps - A free JavaScript library for making dynamic, interactive maps in modern web browsers.
- kartograph.js - Open source JavaScript renderer for Kartograph SVG maps.
- mapbox.js - Mapbox JavaScript API, a Leaflet Plugin.
- jqvmap - jQuery Vector Map Library.
- OpenLayers3 - A high-performance, feature-packed library for all your mapping needs.
Video/Audio
- prettyembed.js - Prettier embeds for your YouTubes - with nice options like high-res preview images, advanced customization of embed options, and optional FitVids support.
- html5media - Enables and tags in all major browsers. https://html5media.info/
- Play-em JS - Play'em is a JavaScript component that manages a music/video track queue and plays a sequence of songs by embedding several players in a HTML DIV including Youtube, Soundcloud and Vimeo.
- polyplayer - Rule YouTube, Soundcloud and Vimeo player with one API.
- flowplayer - The HTML5 video player for the web https://flowplayer.org/
- mediaelement - HTML5 or player with Flash and Silverlight shims that mimics the HTML5 MediaElement API, enabling a consistent UI in all browsers. http://mediaelementjs.com/
- SoundJS - A library to make working with audio on the web easier. It provides a consistent API for playing audio in different browsers.
- video.js - Video.js - open source HTML5 & Flash video player.
- FitVids.js - A lightweight, easy-to-use jQuery plugin for fluid width video embeds.
- Ion.Sound - Simple sounds on any web page.
- photobooth-js - A widget that allows users to take their avatar pictures on your site.
- clappr - An extensible media player for the web http://clappr.io
Typography
- FlowType.JS - Web typography at its finest: font-size and line-height based on element width.
- BigText - jQuery plugin, calculates the font-size and word-spacing needed to match a line of text to a specific width.
- circletype - A jQuery plugin that lets you curve type on the web.
- slabText - A jQuery plugin for producing big, bold & responsive headlines.
- simple-text-rotator - Add a super simple rotating text to your website with little to no markup.
- novacancy.js - Text Neon Golden effect jQuery plug-in.
- jquery-responsive-text - Make your text sizing responsive!
- FitText.js - A jQuery plugin for inflating web type.
- Lettering.js - A lightweight, easy to use JavaScript
<span>
injector for radical Web Typography.
Animations
- velocity - Accelerated JavaScript animation.
- jquery.transit - Super-smooth CSS3 transformations and transitions for jQuery.
- impress.js - Make Prezi-like presentations with CSS3 transformations/transitions in an HTML document.
- bounce.js - Create tasty CSS3 powered animations in no time.
- GreenSock-JS - High-performance HTML5 animations that work in all major browsers.
- TransitionEnd - TransitionEnd is an agnostic and cross-browser library to work with transitioned event.
- Dynamic.js - JavaScript library to create physics-based CSS animations.
- the-cube - The Cube is an experiment with CSS3 transitions.
- Effeckt.css - A Performant Transitions and Animations Library
- animate.css - A cross-browser library of CSS animations. As easy to use as an easy thing.
- textillate - A simple plugin for CSS3 text animations.
- move.js - CSS3 backed JavaScript animation framework.
- animatable - One property, two values, endless possibilities.
- shuffle-images - The Simplest Way to shuffle through images in a Creative Way http://www.thepetedesign.com/demos/shuffle-images_demo.html
- smoothState.js - Unobtrusive page transitions with jQuery. http://smoothstate.com/
- Anime.js - A JavaScript animation engine http://animejs.com.
- Mo.js - Motion graphics toolbelt for the web http://mojs.io.
- particles.js - A lightweight JavaScript library for creating particles.
Image Processing
- lena.js - A Library for image processing with filters and util functions.
- pica - High quality image resize (with fast Lanczos filter, implemented in pure JS).
- cropper - A simple jQuery image cropping plugin.
ES6
- es6features - Overview of ECMAScript 6 features.
- es6-features - ECMAScript 6: Feature Overview & Comparison.
- es6-cheatsheet - ES2015 [ES6] cheatsheet containing tips, tricks, best practices and code snippets.
- ECMAScript 6 compatibility table - Compatibility tables for all ECMAScript 6 features on a variety of environments.
- Babel (Formerly 6to5) - Turn ES6+ code into vanilla ES5 with no runtime.
- Traceur compiler - ES6 features > ES5. Includes classes, generators, promises, destructuring patterns, default parameters & more.
Generators
- Gatsby.js - React-based static site generator.
SDK
- javascript-sdk-design - JavaScript SDK design guide extracted from work and personal experience
- Spotify SDK - Entity oriented SDK to work with the Spotify Web API.
- Square Node.js SDK - JavaScript client library for payments and other Square APIs.
Misc
- echo - Lazy-loading images with data-* attributes.
- picturefill - A responsive image polyfill for <picture>, srcset, sizes.
- platform.js - A platform detection library that works on nearly all JavaScript platforms.
- json3 - A modern JSON implementation compatible with nearly all JavaScript platforms.
- Logical Or Not - A game about JavaScript specificities.
- BitSet.js - A JavaScript Bit-Vector implementation
- spoiler-alert - SPOILER ALERT! A happy little jquery plugin to hide spoilers on your site.
- jquery.vibrate.js - Vibration API Wrappers
- list.js - Adds search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML. http://www.listjs.com
- mixitup - MixItUp - A Filter & Sort Plugin.
- grid - Drag and drop library for two-dimensional, resizable and responsive lists.
- jquery-match-height - a responsive equal heights plugin for jQuery.
- survey.js - JavaScript Survey Engine. It uses JSON for survey metadata and results. http://surveyjs.org/
- Array Explorer and Object Explorer - Resources to help figure out what native JavaScript method would be best to use at any given time
- Clipboard.js - "Copy to clipboard" without Flash or use of Frameworks.
- ky - Tiny and elegant HTTP client based on the browser Fetch API.
Podcasts
- JavaScript Air - The live video broadcast podcast all about JavaScript and the Web platform.
- Web of Tomorrow - Podcast about JavaScript for beginners.
- JavaScript Jabber - A weekly podcast about JavaScript, including Node.js, Front-End Technologies, Careers, Teams and more.
Worth Reading
- You Don't Know JS - Possibly the best book written on modern JavaScript, completely readable online for free, or can be bought to support the author.
- braziljs/js-the-right-way - An easy-to-read, quick reference for JS best practices, accepted coding standards, and links around the Web.
- JSbooks - Directory of free JavaScript ebooks.
- Superhero.js - A collection of resources about creating, testing and maintaining a large JavaScript code base.
- SJSJ - Simplified JavaScript Jargon is a community-driven attempt at explaining the loads of buzzwords making the current JavaScript ecosystem in a few simple words.
- How to Write an Open Source JavaScript Library - A comprehensive guide through a set of steps to publish a JavaScript open source library.
- Jaavascript tutorial - Learn Javascript online from a diverse range of user ranked online tutorials.
Other Awesome Lists
- sotayamashita/awesome-css
- emijrp/awesome-awesome
- bayandin/awesome-awesomeness
- sindresorhus/awesome
- jnv/list
- gianarb/angularjs
- peterkokot/awesome-dojo
- addyosmani/es6-tools
- ericdouglas/ES6-Learning
- obetomuniz/awesome-webcomponents
- willianjusten/awesome-svg
- davidsonfellipe/awesome-wpo
- instanceofpro/awesome-backbone
- enaqx/awesome-react
- bolshchikov/js-must-watch
- peterkokot/awesome-jquery
- davidyezsetz/you-might-not-need-jquery-plugins
- MaximAbramchuck/awesome-interviews
原文:https://github.com/sorrycc/awesome-javascript
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 119 次浏览
【Java精选】精选的Java框架,库和软件的精选列表。
A curated list of awesome Java frameworks, libraries and software.
Contents
- Projects
- Bean Mapping
- Build
- Bytecode Manipulation
- Caching
- CLI
- Cluster Management
- Code Analysis
- Code Coverage
- Code Generators
- Compiler-compiler
- Configuration
- Constraint Satisfaction Problem Solver
- CSV
- Data structures
- Database
- Date and Time
- Dependency Injection
- Development
- Distributed Applications
- Distributed Transactions
- Distribution
- Document Processing
- Formal Verification
- Functional Programming
- Game Development
- Geospatial
- GUI
- High Performance
- HTTP Clients
- Hypermedia Types
- IDE
- Imagery
- JSON Processing
- JSON
- JVM and JDK
- Logging
- Machine Learning
- Messaging
- Microservice
- Miscellaneous
- Monitoring
- Native
- Natural Language Processing
- Networking
- ORM
- PaaS
- Performance analysis
- Platform
- Processes
- Reactive libraries
- REST Frameworks
- Science
- Search
- Security
- Serialization
- Server
- Template Engine
- Testing
- Utility
- Version Managers
- Web Crawling
- Web Frameworks
- Resources
- Contributing
Projects
Bean Mapping
Frameworks that ease bean mapping.
- dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
- Dozer - Mapper that copies data from one object to another using annotations and API or XML configuration.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- ModelMapper - Intelligent object mapping library that automatically maps objects to each other.
- Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- Selma - Annotation processor-based bean mapper.
Build
Tools that handle the build cycle and dependencies of an application.
- Apache Maven - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
- Bazel - Tool from Google that builds code quickly and reliably.
- Buck - Encourages the creation of small, reusable modules consisting of code and resources.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
Bytecode Manipulation
Libraries to manipulate bytecode programmatically.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite.
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting.
- cglib - Bytecode generation library.
- Javassist - Tries to simplify bytecode editing.
- Mixin - Manipulate bytecode at runtime using real Java code.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
Caching
Libraries that provide caching facilities.
- cache2k - In-memory high performance caching library.
- Caffeine - High-performance, near-optimal caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
CLI
Libraries for everything related to the CLI.
- ASCII Table - Library to draw tables in ASCII.
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- args4j - Small library to parse command-line arguments.
- Jansi - ANSI escape codes to format console output.
- Java ASCII Render - Graphical primitives for the console.
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- jbock - Typesafe, reflection-free, annotation based command-line parser
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like Turbo Vision.
- JLine - Includes features from modern shells like completion or history.
- JOpt Simple - Fluent parser that uses the POSIX#getopt and GNU#getopt_long syntaxes.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses.
Cluster Management
Frameworks that can dynamically manage applications inside of a cluster.
- Apache Aurora - Mesos framework for long-running services and cron jobs.
- Apache Mesos - Abstracts CPU, memory, storage, and other compute resources away from machines.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
Code Analysis
Tools that provide metrics and quality measurements.
- Checkstyle - Static analysis of coding conventions and standards.
- Error Prone - Catches common programming mistakes as compile-time errors.
- Infer - Modern static analysis tool for verifying the correctness of code.
- jQAssistant - Static code analysis with Neo4J-based query language.
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- PMD - Source code analysis for finding bad coding practices.
- SonarJava - Static analyzer for SonarQube & SonarLint.
- Sourcetrail - Visual source code navigator.
- Spoon - Library for analyzing and transforming Java source code.
- Spotbugs - Static analysis of bytecode to find potential bugs.
Code Coverage
Frameworks and tools that enable code coverage metrics collection for test suites.
- Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
- Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics.
- JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
Code Generators
Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness.
- ADT4J - JSR-269 code generator for algebraic data types.
- Auto - Generates factory, service, and value classes.
- FreeBuilder - Automatically generates the Builder pattern.
- Immutables - Annotation processors to generate simple, safe and consistent value objects.
- JavaPoet - API to generate source files.
- JHipster - Yeoman source code generator for Spring Boot and AngularJS.
- Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
- Lombok - Code generator that aims to reduce verbosity.
Compiler-compiler
Frameworks that help to create parsers, interpreters or compilers.
- ANTLR - Complex full-featured framework for top-down parsing.
- JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
- JFlex - A lexical analyzer generator.
Configuration
Libraries that provide external configuration.
- centraldogma - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- cfg4j - Modern configuration library for distributed apps written in Java.
- config - Configuration library for JVM languages.
- dotenv - A twelve-factor configuration library for Java.
- ini4j - Provides an API for handling Windows' INI files.
- KAConf - Annotation-based configuration system for Java and Kotlin.
- owner - Reduces boilerplate of properties.
Constraint Satisfaction Problem Solver
Libraries that help with implementing optimization and satisfiability problems.
- Choco - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
- JaCoP - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models.
- OptaPlanner - Business planning and resource scheduling optimization solver.
CSV
Frameworks and libraries that simplify reading/writing CSV data.
- jackson-dataformat-csv - Jackson extension for reading and writing CSV.
- opencsv - Simple CSV parser.
- Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
- uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
Database
Everything that simplifies interactions with the database.
- Apache Drill - Distributed, schema on-the-fly, ANSI SQL query engine for Big Data exploration.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- AranoDB - ArangoDB Java driver.
- Chronicle Map - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- druid - High-performance, column-oriented, distributed data store.
- eXist - A NoSQL document database and application platform.
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- Flyway - Simple database migration tool.
- H2 - Small SQL database notable for its in-memory functionality.
- HikariCP - High-performance JDBC connection pool.
- jasync-sql - Async DB driver for MySQL and PostgreSQL.
- JDBI - Convenient abstraction of JDBC.
- Jedis - Small client for interaction with Redis, with methods for commands.
- Jest - Client for the Elasticsearch REST API.
- jetcd - Client library for etcd.
- Jinq - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- jOOQ - Generates typesafe code based on SQL schema.
- Liquibase - Database-independent library for tracking, managing and applying database schema changes.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- MariaDB4j - Launcher for MariaDB that requires no installation or external dependencies.
- OrientDB - Embeddable distributed database written on top of Hazelcast.
- Presto - Distributed SQL query engine for big data.
- Querydsl - Typesafe unified queries.
- Realm - Mobile database to run directly inside phones, tablets or wearables.
- Redisson - Allows for distributed and scalable data structures on top of a Redis server.
- requery - A modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- sql2o - Thin JDBC wrapper that simplifies database access and provides simple mapping of ResultSets to POJOs.
- Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
Data Structures
Efficient and specific data structures.
- Apache Avro - Data interchange format with dynamic typing, untagged data, and absence of manually assigned IDs.
- Apache Orc - Fast and efficient columnar storage format for Hadoop-based workloads.
- Apache Parquet - Columnar storage format based on assembly algorithms from Google's paper on Dremel.
- Apache Thrift - Data interchange format that originated at Facebook.
- Big Queue - A big, fast and persistent queue based on memory-mapped files.
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
- Protobuf - Google's data interchange format.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
- Tape - A lightning-fast, transactional, file-based FIFO.
- Wire - Clean, lightweight protocol buffers.
Date and Time
Libraries related to handling date and time.
- Almanac Converter - Simple conversion between different calendar systems.
- iCal4j - Parse and build iCalendar RFC 5545 data models.
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
- Time4J - Advanced date and time library.
Dependency Injection
Libraries that help to realize the Inversion of Control paradigm.
- Apache DeltaSpike - CDI extension framework.
- Dagger2 - Compile-time injection framework without reflection.
- Feather - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Governator - Extensions and utilities that enhance Google Guice.
- Guice - Lightweight and opinionated framework that completes Dagger.
- HK2 - Lightweight and dynamic dependency injection framework.
- JayWire - Lightweight dependency injection framework.
Development
Augmentation of the development process at a fundamental level.
- AspectJ - Seamless aspect-oriented programming extension.
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime.
- Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
- HotswapAgent - Unlimited runtime class and resource redefinition.
- JavaParser - Parse, modify and generate Java code.
- JavaSymbolSolver - A symbol solver for Java.
- JRebel - Instantly reloads code and configuration changes without redeploys.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
Distributed Applications
Libraries and frameworks for writing distributed and fault-tolerant applications.
- Apache Geode - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
- Apache Storm - Realtime computation system.
- Apache ZooKeeper - Coordination service with distributed configuration, synchronization, and naming registry for large distributed systems.
- Atomix - Fault-tolerant distributed coordination framework.
- Axon Framework - Framework for creating CQRS applications.
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard.
- Failsafe - Simple failure handling with retries and circuit breakers.
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- Hystrix - Provides latency and fault tolerance.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Orbit - Virtual actors; adds another level of abstraction to traditional actors.
- Quasar - Lightweight threads and actors for the JVM.
- resilience4j - Functional fault tolerance library.
- ScaleCube - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul - A gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
Distributed Transactions
Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures.
- Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
- Bitronix - A simple but complete implementation of the JTA 1.1 API.
- Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards.
Distribution
Tools that handle the distribution of applications in native formats.
- Bintray - Version control for binaries that handle publishing. Compatible with Maven or Gradle, with a free plan for open-source software as well as several business plans.
- Boxfuse - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- Central Repository - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools.
- Cloudsmith - Fully managed package management SaaS with support for Maven/Gradle/SBT.
- IzPack - Setup authoring tool for cross-platform deployments.
- JitPack - Easy-to-use package repository for GitHub. Builds Maven/Gradle projects on demand and publishes ready-to-use packages.
- Nexus - Binary management with proxy and caching capabilities.
- packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and Mac OS X.
- really-executable-jars-maven-plugin - Maven plugin for making self-executing JARs.
Document Processing
Libraries that assist with processing office document formats.
- Apache POI - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT).
- documents4j - API for document format conversion using third-party converters such as MS Word.
- docx4j - Create and manipulate Microsoft Open XML files.
- zerocell - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
Formal Verification
Formal-methods tools: proof assistants, model checking, symbolic execution, etc.
- CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
- Checker Framework - Pluggable type systems. Includes nullness types, physical units, immutability types and more.
- Daikon - Detects likely program invariants and generates JML specs based on those invariants.
- Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
- JMLOK 2.0 - Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected.
- KeY - Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification.
- OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers.
Functional Programming
Libraries that facilitate functional programming.
- cyclops-react - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
- derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms.
- Fugue - Functional extensions to Guava.
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
- jOOλ - Extension to Java 8 that aims to fix gaps in lambda by providing numerous missing types and a rich set of sequential Stream API additions.
- protonpack - Collection of stream utilities.
- StreamEx - Enhances Java 8 Streams.
- Vavr - Functional component library that provides persistent data types and functional control structures.
Game Development
Frameworks that support the development of games.
- FXGL - JavaFX Game Development Framework.
- jMonkeyEngine - Game engine for modern 3D development.
- libGDX - All-round cross-platform, high-level framework.
- LWJGL - Robust framework that abstracts libraries like OpenGL/CL/AL.
Geospatial
Libraries for working with geospatial data and algorithms.
- Apache SIS - Library for developing geospatial applications.
- Geo - GeoHash utilities in Java.
- Geotoolkit.org - Library for developing geospatial applications. Built on top of the Apache SIS project.
- GeoTools - Library that provides tools for geospatial data.
- GraphHopper - Road-routing engine. Used as a Java library or standalone web service.
- H2GIS - A spatial extension of the H2 database.
- Jgeohash - Library for using the GeoHash algorithm.
- Mapsforge - Map rendering based on OpenStreetMap data.
- Spatial4j - General-purpose spatial/geospatial library.
GUI
Libraries to create modern graphical user interfaces.
- JavaFX - The successor of Swing.
- Scene Builder - Visual layout tool for JavaFX applications.
- SWT - The Standard Widget Toolkit, a graphical widget toolkit.
High Performance
Everything about high-performance computation, from collections to specific libraries.
- Agrona - Data structures and utility methods that are common in high-performance applications.
- Disruptor - Inter-thread messaging library.
- Eclipse Collections - Collections framework inspired by Smalltalk.
- fastutil - Fast and compact type-specific collections.
- HPPC - Primitive collections.
- JCTools - Concurrency tools currently missing from the JDK.
- Koloboke - Hash sets and hash maps.
HTTP Clients
Libraries that assist with creating HTTP requests and/or binding responses.
- Armeria - Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
- Async Http Client - Asynchronous HTTP and WebSocket client library.
- Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- OkHttp - HTTP+SPDY client.
- Play WS - Typesafe client with reactive streams and caching.
- restQL-core - Microservice query language that fetches information from multiple services.
- Retrofit - Typesafe REST client.
- Ribbon - Client-side IPC library that is battle-tested in cloud.
- Riptide - Client-side response routing for Spring's RestTemplate.
- unirest-java - Simplified, lightweight HTTP client library.
Hypermedia Types
Libraries that handle serialization to hypermedia types.
IDE
Integrated development environments that try to simplify several aspects of development.
- Eclipse - Established open-source project with support for lots of plugins and languages.
- IntelliJ IDEA - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
- NetBeans - Provides integration for several Java SE and EE features, from database access to HTML5.
- Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
Imagery
Libraries that assist with the creation, evaluation or manipulation of graphical images.
- Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J - A JNA wrapper for Tesseract OCR API.
- Thumbnailator - High-quality thumbnail generation library.
- TwelveMonkeys - Collection of plugins that extend the number of supported image file formats.
- ZXing - Multi-format 1D/2D barcode image processing library.
- image-comparison - Compares two images with the same sizes and shows the differences visually by drawing rectangles.
JSON
Libraries for serializing and deserializing JSON to and from Java objects.
- DSL-JSON - JSON library with advanced compile time databinding.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- HikariJSON - High-performance JSON parser, 2x faster than Jackson.
- jackson-modules-java8 - Set of Jackson modules for Java 8 datatypes and features.
- Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- JSON-io - Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
- jsoniter - Fast and flexible library with iterator and lazy parsing API.
- LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
- Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Yasson - Binding layer between classes and JSON documents similar to JAXB.
JSON Processing
Libraries for processing data in JSON format.
- fastjson - Very fast processor with no additional dependencies and full data binding.
- Jolt - JSON to JSON transformation tool.
- JsonPath - Extract data from JSON using XPATH-like syntax.
- JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
JVM and JDK
Current implementations of the JVM/JDK.
- Adopt Open JDK - OpenJDK builds which allows to choose between HotSpot and OpenJ9.
- Avian - JVM with JIT, AOT modes and iOS port.
- Corretto - No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon.
- Graal - Polyglot embeddable JVM.
- Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK.
- OpenJ9 - High performance, enterprise-calibre, flexibly licensed, openly-governed cross-platform JVM extending and augmenting the runtime technology components from the Eclipse OMR and OpenJDK project.
- Open JDK - Open JDK distributed by Oracle.
- ParparVM - VM with non-blocking, concurrent GC for iOS.
- RedHat Open JDK - RedHat's OpenJDK distribution.
- Zulu - OpenJDK builds for Windows, Linux, and Mac OS X.
Logging
Libraries that log the behavior of an application.
- Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
- Graylog - Open-source aggregator suited for extended role and permission management.
- Kibana - Analyzes and visualizes log files. Some features require payment.
- Logback - Robust logging library with interesting configuration options via Groovy.
- Logbook - Extensible, open-source library for HTTP request and response logging.
- Logstash - Tool for managing log files.
- p6spy - Enables logging for all JDBC transactions without changes to the code.
- SLF4J - Abstraction layer/simple logging facade.
- tinylog - Lightweight logging framework with static logger class.
- Tracer - Call tracing and log correlation in distributed systems.
Machine Learning
Tools that provide specific statistical algorithms for learning from data.
- Apache Flink - Fast, reliable, large-scale data processing engine.
- Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
- Apache Spark - Data analytics cluster-computing framework.
- DatumBox - Provides several algorithms and pre-trained models for natural language processing.
- DeepDive - Creates structured information from unstructured data and integrates it into an existing database.
- Deeplearning4j - Distributed and multi-threaded deep learning library.
- H2O - Analytics engine for statistics over big data.
- JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution.
- Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
- Smile - The Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
- Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization.
Messaging
Tools that help send messages between clients to ensure protocol independency.
- Aeron - Efficient, reliable, unicast and multicast message transport.
- Apache ActiveMQ - Message broker that implements JMS and converts synchronous to asynchronous communication.
- Apache Camel - Glues together different transport APIs via Enterprise Integration Patterns.
- Apache Kafka - High-throughput distributed messaging system.
- Apache Pulsar - Distributed pub/sub-messaging system.
- Apache RocketMQ - A fast, reliable, and scalable distributed messaging platform.
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
- EventBus - Simple publish/subscribe event bus.
- Hermes - Fast and reliable message broker built on top of Kafka.
- JeroMQ - Implementation of ZeroMQ.
- Nakadi - Provides a RESTful API on top of Kafka.
- RabbitMQ Java client - RabbitMQ client.
- Smack - Cross-platform XMPP client library.
- NATS client - NATS client.
Miscellaneous
Everything else.
- Codename One - Cross-platform solution for writing native mobile apps.
- CQEngine - Ultra-fast, SQL-like queries on Java collections.
- Design Patterns - Implementation and explanation of the most common design patterns.
- Failsafe - Simple failure handling with retries and circuit breakers.
- FF4J - Feature Flags for Java.
- FizzBuzz Enterprise Edition - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.
- J2ObjC - Java-to-Objective-C translator for porting Android libraries to iOS.
- JavaCV - Java interface to OpenCV, FFmpeg, and more.
- JavaX - Reinventing and extending Java with a focus on simplicity.
- JBake - Static website generator.
- JBot - Framework for building chatbots.
- JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
- Jimfs - In-memory file system.
- Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
- JPad - Snippet runner.
- LightAdmin - Pluggable CRUD UI library for rapid application development.
- Maven Wrapper - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
- Membrane Service Proxy - An open-source, reverse-proxy framework written in Java.
- MinimalFTP - Lightweight, small and customizable FTP server.
- Modern Java - A Guide to Java 8 - Popular Java 8 guide.
- Modernizer - Detect uses of legacy Java APIs.
- Multi-OS Engine - An open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
- OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
- PipelinR – Small utility library for using handlers and commands with pipelines.
- Polyglot for Maven - Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML.
- Smooks - Extensible framework for building applications that process data which means bindings, transformations, message processing and enrichment.
- Togglz - Implementation of the Feature Toggles pattern.
- TypeTools - Tools for resolving generic types.
- XMLBeam - Processes XML by using annotations or XPath within code.
- OctoLinker - Browser extension which allows to navigate through code on GitHub more efficiently.
Microservice
Tools for creating and managing microservices.
- Apollo - Libraries for writing composable microservices.
- consul-api - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service.
- Eureka - REST-based service registry for resilient load balancing and failover.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- Lagom - Framework for creating microservice-based systems.
- Micronaut - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time.
Monitoring
Tools that monitor applications in production.
- AppDynamics - Performance monitor.
- Automon - Combines the power of AOP with monitoring and/or logging tools.
- BugSnag - Exception and error monitoring with an integration of several third party tools for a better workflow and a free hobbyist tier.
- LeakCanary - Memory leak detection.
- Failsafe Actuator - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
- Glowroot - Open-source Java APM.
- inspectIT - Captures detailed run-time information via hooks that can be changed on the fly. It supports tracing over multiple systems via the OpenTracing API and can correlate the data with end user monitoring.
- Instrumental - Real-time Java application performance monitoring. A commercial service with free development accounts.
- JavaMelody - Performance monitoring and profiling.
- Jaeger client - Jaeger client.
- jmxtrans - Connect to multiple JVMs and query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVM attributes. Supports different output writes, including Graphite, Ganglia, and StatsD.
- Jolokia - JMX over REST.
- Kamon - Tool for monitoring applications running on the JVM.
- Metrics - Expose metrics via JMX or HTTP and send them to a database.
- New Relic - Performance monitor.
- Datadog - Modern monitoring & analytics.
- nudge4j - Remote developer console from the browser for Java 8 via bytecode injection.
- OverOps - In-production error monitoring and debugging.
- Pinpoint - Open-source APM tool.
- Prometheus - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
- SPM - Performance monitor with distributing transaction tracing for JVM apps.
- Stagemonitor - Open-source performance monitoring and transaction tracing for JVM apps.
- Sysmon - Lightweight platform monitoring tool for Java VMs.
- zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
Native
For working with platform-specific native libraries.
- JavaCPP - Provides efficient and easy access to native C++.
- JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JNR - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming Project Panama.
Natural Language Processing
Libraries that specialize in processing text.
- CogCompNLP - Provides common annotators for plain text input.
- CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis.
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
- Lingua - Natural language detection library, especially suited for short paragraphs of text.
- LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
Networking
Libraries for building network servers.
- AkkaGRPC - Support for building streaming gRPC servers and clients on top of Akka Streams.
- Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
- Dubbo - High-performance RPC framework.
- Finagle - Extensible RPC system for constructing high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol-agnostic to simplify implementation of new protocols.
- Grizzly - NIO framework. Used as a network layer in Glassfish.
- gRPC - RPC framework based on protobuf and HTTP/2.
- KryoNet - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
- MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
- Netty - Framework for building high-performance network applications.
- Nifty - Implementation of Thrift clients and servers on Netty.
- sshj - Programatically use SSH, SCP or SFTP.
- TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly.
- urnlib - Represent, parse and encode URNs, as in RFC 2141.
ORM
APIs that handle the persistence of objects.
- Apache Cayenne - Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation.
- Doma 2 - Database access framework that verifies and generates source code at compile time using annotation processing as well as native SQL templates called two-way SQL.
- Ebean - Provides simple and fast data access.
- EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
- Hibernate - Robust and widely used, with an active community.
- MyBatis - Couples objects with stored procedures or SQL statements.
- SimpleFlatMapper - Simple database and CSV mapper.
PaaS
Java platform as a service.
- AWS Elastic Beanstalk - AWS-based, with support for Tomcat and Jetty.
- AWS Lambda - Serverless computation.
- Google App Engine - PaaS on Google's infrastructure.
- Heroku - Abstract computing environments.
- Jelastic - Supports Tomcat, Jetty, GlassFish, JBoss, TomEE and WildFly.
- OpenShift Enterprise - On-premise solution.
Tools to help with PDF file creation.
- Apache FOP - Creates PDFs from XSL-FO.
- Apache PDFBox - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper - Abstraction layer to JasperReports.
- DynamicReports - Simplifies JasperReports.
- flyingsaucer - XML/XHTML and CSS 2.1 renderer.
- iText - Creates PDF files programmatically.
- JasperReports - Complex reporting engine.
- Open HTML to PDF - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
Performance analysis
Tools for performance analysis, profiling and benchmarking.
- fastThread - Analyze and visualize thread dumps with a free cloud-based upload interface.
- GCeasy - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
- honest-profiler - A low-overhead, bias-free sampling profiler.
- jHiccup - Logs and records platform JVM stalls.
- JITWatch - Analyze the JIT compiler optimisations made by the HotSpot JVM.
- JMH - a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM.
- JProfiler - Database profiling for JDBC, JPA and NoSQL, with JEE support.
- LatencyUtils - Utilities for latency measurement and reporting.
- XRebel - Real-time profiling for web applications, with an in-browser widget.
- YourKit Java Profiler - Profiler for any application running on the JVM.
Platform
Frameworks that are suites of multiple libraries encompassing several categories.
Apache Commons
- BCEL - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
- BeanUtils - Easy-to-use wrappers around the Java reflection and introspection APIs.
- BeanUtils2 - Redesign of Commons BeanUtils.
- BSF - Bean Scripting Framework - interface to scripting languages, including JSR-223.
- Chain - Chain of Responsibility pattern implementation.
- ClassScan - Find Class interfaces, methods, fields, and annotations without loading.
- CLI - Command-line arguments parser.
- CLI2 Redesign of Commons CLI.
- Codec - General encoding/decoding algorithms (for example phonetic, base64, URL).
- Collections - Extends or augments the Java Collections Framework.
- Compress - Defines an API for working with tar, zip and bzip2 files.
- Configuration - Reading of configuration/preferences files in various formats.
- Convert - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
- CSV - Component for reading and writing comma separated value files.
- Daemon - Alternative invocation mechanism for unix-daemon-like java code.
- DBCP - Database connection pooling services.
- DbUtils - JDBC helper library.
- Digester - XML-to-Java-object mapping utility.
- Email - Library for sending e-mail from Java.
- Exec - API for dealing with external process execution and environment management in Java.
- FileUpload - File upload capability for your servlets and web applications.
- Finder - Java library inspired by the UNIX find command.
- Flatfile - Java library for working with flat data structures.
- Functor - A functor is a function that can be manipulated as an object, or an object representing a single, generic function.
- Graph - A general purpose Graph APIs and algorithms.
- I18n - Adds the feature of localized message bundles that consist of one or many localized texts that belong together.
- Id - Id is a component used to generate identifiers.
- Imaging - A pure-Java image library.
- IO - Collection of I/O utilities.
- Javaflow - Continuation implementation to capture the state of the application.
- JCI - Java Compiler Interface.
- JCS - Java Caching System.
- Jelly - XML based scripting and processing engine.
- Jexl - Expression language which extends the Expression Language of the JSTL.
- JNet - JNet allows to use dynamically register url stream handlers through the java.net API.
- JXPath - Utilities for manipulating Java Beans using the XPath syntax.
- Lang - Provides extra functionality for classes in java.lang.
- Logging Wrapper around a variety of logging API implementations.
- Math - Lightweight, self-contained mathematics and statistics components.
- Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
- Nabla - Nabla provides automatic differentiation classes that can generate derivative of any function implemented in the Java language.
- Net - Collection of network utilities and protocol implementations.
- OGNL - An Object-Graph Navigation Language.
- OpenPGP - Interface to signing and verifying data using OpenPGP.
- Performance - A small framework for microbenchmark clients, with implementations for Commons DBCP and Pool.
- Pipeline - Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects.
- Pool - Generic object pooling component.
- Proxy - Library for creating dynamic proxies.
- RDF - Common implementation of RDF 1.1 that could be implemented by systems on the JVM.
- RNG - Commons Rng provides implementations of pseudo-random numbers generators.
- SCXML - An implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
- Validator - Framework to define validators and validation rules in an xml file.
- VFS - Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
- Weaver - Provides an easy way to enhance (weave) compiled bytecode.
Other
- CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
- Light-Java - A fast, lightweight and productive microservices framework with built-in security.
- Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
- Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
Processes
Libraries that help the management of operating system processes.
- ch.vorburger.exec - Convenient API around Apache Commons Exec.
- zt-exec - Provides a unified API to Apache Commons Exec and ProcessBuilder.
- zt-process-killer - Stops processes started from Java or the system processes via PID.
Reactive libraries
Libraries for developing reactive applications.
- Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
- Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
- Reactor - Library for building reactive fast-data applications.
- RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
- vert.x - Polyglot event-driven application framework.
REST Frameworks
Frameworks specifically for creating RESTful services.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
- javalin - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty.
- Jersey - JAX-RS reference implementation.
- Microserver — A convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles.
- Rapidoid - A simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection.
- rest.li - Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
- RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
- RestExpress - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
- Restlet Framework - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
- Spark - Sinatra inspired framework.
- Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
- Swagger - Standard, language-agnostic interface to REST APIs.
Science
Libraries for scientific computing, analysis and visualization.
- DataMelt - Environment for scientific computation, data analysis and data visualization.
- Erdos - Modular, light and easy graph framework for theoretic algorithms.
- GraphStream - Library for modeling and analyzing dynamic graphs.
- JFreeChart - 2D chart library for Swing, JavaFX and server-side applications.
- JGraphT - Graph library that provides mathematical graph-theory objects and algorithms.
- JGraphX - Library for visualizing (mainly Swing) and interacting with node-edge graphs.
- Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
- Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
- Orson-Charts - Generates a wide variety of 3D charts that can be displayed with Swing and JavaFX or exported to PDF, SVG, PNG and JPEG.
- Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
- XChart - A light-weight library for plotting data. Many customizable chart types are available.
Search
Engines that index documents for search and analysis.
- Apache Lucene - High-performance, full-featured, cross-platform, text search engine library.
- Apache Solr - Enterprise search engine optimized for high-volume traffic.
- Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
- Indexer4j - Simple and light full text indexing and searching library.
Security
Libraries that handle security, authentication, authorization or session management.
- Apache Shiro - Performs authentication, authorization, cryptography and session management.
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- Cryptomator - Multiplatform, transparent, client-side encryption of files in the cloud.
- Hdiv - Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks.
- jjwt - JSON web token for Java and Android.
- Jwks RSA - JSON Web Key Set parser.
- Kalium - Binding for the Networking and Cryptography (NaCl) library.
- Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
- Keyczar - Easy-to-use, safe encryption framework with key versioning.
- Keywhiz - System for distributing and managing secrets.
- Nbvcxz - Advanced password strength estimation.
- OACC - Provides permission-based authorization services.
- pac4j - Security engine.
- PicketLink - Umbrella project for security and identity management.
- SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
- Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
- Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
- Vault - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.
Serialization
Libraries that handle serialization with high efficiency.
- FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
- FST - JDK-compatible, high-performance object graph serialization.
- Kryo - Fast and efficient object graph serialization framework.
- MessagePack - Efficient binary serialization format.
- PHP Serializer - Serializing objects in the PHP serialization format.
Server
Servers specifically used to deploy applications.
- Apache Tomcat - Robust, all-round server for Servlet and JSP.
- Apache TomEE - Tomcat plus Java EE.
- Jetty - Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
- nanohttpd - Tiny, easily embeddable HTTP server.
- WebSphere Liberty - Lightweight, modular server developed by IBM.
- WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support.
Template Engine
Tools that substitute expressions in a template.
- Handlebars.java - Logicless and semantic Mustache templates.
- Jade4J - Implementation of Pug (formerly known as Jade).
- Jtwig - Modular, configurable and fully tested template engine.
- Pebble - Inspired by Twig and separates itself with its inheritance feature and its easy-to-read syntax. It ships with built-in autoescaping for security and it includes integrated support for internationalization.
- Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
- Thymeleaf - Aims to be a substitute for JSP and works for XML files.
Testing
Tools that test from model to the view.
Asynchronous
Tools that simplify testing asynchronous services.
- Awaitility - DSL for synchronizing asynchronous operations.
- ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
- GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL.
- Hoverfly Java - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
- REST Assured - DSL for easy testing of REST/HTTP services.
BDD
Testing for the software development process that emerged from TDD and was heavily influenced by DDD and OOAD.
- Cucumber - Provides a way to describe features in a plain language which customers can understand.
- Cukes-REST - A collection of Gherkin steps for REST-service testing using Cucumber.
- J8Spec - Follows a Jasmine-like syntax.
- JBehave - Extensively configurable framework that describes stories.
- JGiven - Provides a fluent API which allows for simpler composition.
- Lamdba Behave - Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English.
- Serenity BDD - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
Fixtures
Everything related to the creation and handling of random data.
- Beanmother - Sets up beans from YAML fixtures.
- Fixture Factory - Generates fake objects from a template.
- jFairy - Fake data generator.
- Randomized Testing - JUnit test runner and plugins for running JUnit tests with pseudo-randomness.
- Java Faker - A port of Ruby's fake data generator.
Frameworks
Provide environments to run tests for a specific use case.
- ArchUnit - Test library for specifying and asserting architecture rules.
- Apache JMeter - Functional testing and performance measurements.
- Arquillian - Integration and functional testing platform for Java EE containers.
- Citrus - Integration testing framework that focuses on both client- and server-side messaging.
- Gatling - Load testing tool designed for ease of use, maintainability and high performance.
- JUnit - Common testing framework.
- Pact JVM - Consumer-driven contract testing.
- PIT - Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites.
Matchers
Libraries that provide custom matchers.
- AssertJ - Fluent assertions that improve readability.
- JSONAssert - Simplifies testing JSON strings.
- Truth - Google's assertion and proposition framework.
Miscellaneous
Other stuff related to testing.
- Mutability Detector - Reports whether instances of a given class are immutable.
- raml-tester - Tests if a request/response matches a given RAML definition.
- TestContainers - Provides throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
- pojo-tester - Automatically performs tests on basic POJO methods.
Mocking
Tools which mock collaborators to help testing single, isolated units.
- JMockit - Integration testing, API mocking and faking, and code coverage.
- Mockito - Mocking framework that lets you write tests with a clean and simple API.
- MockServer - Allows mocking of systems integrated with HTTPS.
- Moco - Concise web services for stubs and mocks.
- PowerMock - Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers.
- WireMock - Stubs and mocks web services.
Parameterization
Simplifies the writing of parameterized tests.
- Burst - A unit testing library for varying test data.
- junit-dataprovider - A TestNG-like data provider/runner for JUnit.
- JUnitParams - Creates readable and maintainable parametrised tests.
Utility
Libraries which provide general utility functions.
- bucket4j - Rate limiting library based on token-bucket algorithm.
- cactoos - Collection of object-oriented primitives.
- CRaSH - Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others.
- Dex - Java/JavaFX tool capable of powerful ETL and data visualization.
- Embulk - Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
- fswatch - Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService
- Gephi - Cross-platform for visualizing and manipulating large graph networks.
- Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JADE - Framework and environment for building and debugging multi-agent systems.
- JavaVerbalExpressions - Library that helps with constructing difficult regular expressions.
- JGit - A lightweight, pure Java library implementing the Git version control system.
- minio-java - Provides simple APIs to access any Amazon S3-compatible object storage server.
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
- Underscore-java - Port of Underscore.js functions.
Version Managers
Utilities that help create the development shell environment and switch between different Java versions.
- jabba - Java Version Manager inspired by nvm. Supports Mac OS X, Linux and Windows.
- jenv - Java Version Manager inspired by rbenv. Can configure globally or per project. Tested on Debian and Mac OS X.
- SDKMan - Java Version Manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows.
Web Crawling
Libraries that analyze the content of websites.
- Apache Nutch - Highly extensible, highly scalable web crawler for production environments.
- Crawler4j - Simple and lightweight web crawler.
- jsoup - Scrapes, parses, manipulates and cleans HTML.
- StormCrawler - SDK for building low-latency and scalable web crawlers.
- webmagic - Scalable crawler with downloading, url management, content extraction and persistent.
Web Frameworks
Frameworks that handle the communication between the layers of a web application.
- Apache Tapestry - Component-oriented framework for creating dynamic, robust, highly scalable web applications.
- Apache Wicket - Component-based web application framework similar to Tapestry, with a stateful GUI.
- Blade - Lightweight, modular framework that aims to be elegant and simple.
- Bootique - Minimally opinionated framework for runnable apps.
- Firefly - Asynchronous framework for rapid development of high-performance web application.
- Grails - Groovy framework that provides a highly productive environment by favoring convention over configuration, no XML and support for mixins.
- Jooby - Scalable, fast and modular micro-framework that offers multiple programming models.
- Ninja - Full-stack web framework.
- Pippo - Small, highly modularized, Sinatra-like framework.
- Play - Built on Akka, it provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications in Java and Scala.
- PrimeFaces - JSF framework with both free and commercial/support versions and frontend components.
- Ratpack - Set of libraries that facilitate fast, efficient, evolvable and well-tested HTTP applications.
- Takes - Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability.
- Vaadin Flow - Event-driven framework that uses standard web components. Server-side architecture with Ajax on the client side.
Resources
Awesome Lists
Awesome lists related to the Java & JVM ecosystem.
- Awesome Annotation Processing
- Awesome Gradle Plugins
- AwesomeJavaFX
- Awesome JVM
- Awesome Microservices
- Awesome REST
- Awesome Selenium
- ciandcd
- Useful Java Links
- Java Concurrency Checklist
- Java Developer Roadmap
Communities
Active discussions.
- r/java - Subreddit for the Java community.
- stackoverflow - Question/answer platform.
- VirtualJUG - Virtual Java User Group.
Frontends
Websites that provide a frontend for this list. Please note, there won't be an official website. We don't associate with a particular website and everybody is allowed to create one.
Influential Books
Books that made a big impact and are still worth reading.
- Core Java Volume I--Fundamentals
- Core Java, Volume II--Advanced Features
- Effective Java (3rd Edition)
- Java Concurrency in Practice
- Thinking in Java
Podcasts and Screencasts
Something to look at or listen to while programming.
- Java Off Heap
- Marco Behler's Screencasts - Screencasts about modern Java development.
- The Java Council
- The Java Posse - Discontinued as of 02/2015.
Active accounts to follow. Descriptions from Twitter.
- Adam Bien - Freelance author, JavaOne Rockstar speaker, consultant, Java Champion.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, *POJOs in Action- author.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Java EE - Official Java EE Twitter account.
- Java Magazine - Official Java Magazine account.
- Java - Official Java Twitter account.
- Javin Paul - Well-known Java blogger.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Stephen Colebourne - Java Champion, speaker.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
Websites
Sites to read.
- Baeldung
- Dzone
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
原文:
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 88 次浏览
【安全精选】黑客,测试者和安全研究人员的各种精彩列表的集合
Awesome Hacking
A collection of awesome lists for hackers, pentesters & security researchers.
Your contributions are always welcome !
Awesome Repositories
Repository | Description |
---|---|
Android Security | Collection of Android security related resources |
AppSec | Resources for learning about application security |
Bug Bounty | List of Bug Bounty Programs and write-ups from the Bug Bounty hunters |
CTF | List of CTF frameworks, libraries, resources and softwares |
Cyber Skills | Curated list of hacking environments where you can train your cyber skills legally and safely |
DevSecOps | List of awesome DevSecOps tools with the help from community experiments and contributions |
Exploit Development | Resources for learning about Exploit Development |
Fuzzing | List of fuzzing resources for learning Fuzzing and initial phases of Exploit Development like root cause analysis |
Hacking | List of awesome Hacking tutorials, tools and resources |
Hacking Resources | Collection of hacking / penetration testing resources to make you better! |
Honeypots | List of honeypot resources |
Incident Response | List of tools for incident response |
Industrial Control System Security | List of resources related to Industrial Control System (ICS) security |
InfoSec | List of awesome infosec courses and training resources |
IoT Hacks | Collection of Hacks in IoT Space |
Malware Analysis | List of awesome malware analysis tools and resources |
OSINT | List of amazingly awesome Open Source Intelligence (OSINT) tools and resources |
OSX and iOS Security | OSX and iOS related security tools |
Pcaptools | Collection of tools developed by researchers in the Computer Science area to process network traces |
Pentest | List of awesome penetration testing resources, tools and other shiny things |
PHP Security | Libraries for generating secure random numbers, encrypting data and scanning for vulnerabilities |
Red Teaming | List of Awesome Red Team / Red Teaming Resources |
Reversing | List of awesome reverse engineering resources |
Sec Talks | List of awesome security talks |
SecLists | Collection of multiple types of lists used during security assessments |
Security | Collection of awesome software, libraries, documents, books, resources and cools stuffs about security |
Serverless Security | Collection of Serverless security related resources |
Social Engineering | List of awesome social engineering resources |
Static Analysis | List of static analysis tools, linters and code quality checkers for various programming languages |
Threat Intelligence | List of Awesome Threat Intelligence resources |
Vehicle Security | List of resources for learning about vehicle security and car hacking |
Vulnerability Research | List of resources about Vulnerability Research |
Web Hacking | List of web application security |
Windows Exploitation - Advanced | List of Awesome Advanced Windows Exploitation References |
WiFi Arsenal | Pack of various useful/useless tools for 802.11 hacking |
YARA | List of awesome YARA rules, tools, and people |
Hacker Roadmap | A guide for amateur pen testers and a collection of hacking tools, resources and references to practice ethical hacking. |
Other useful repositories
Repository | Description |
---|---|
Adversarial Machine Learning | Curated list of awesome adversarial machine learning resources |
AI Security | Curated list of AI security resources |
API Security Checklist | Checklist of the most important security countermeasures when designing, testing, and releasing your API |
APT Notes | Various public documents, whitepapers and articles about APT campaigns |
Bug Bounty Reference | List of bug bounty write-up that is categorized by the bug nature |
Cryptography | Cryptography resources and tools |
CTF Tool | List of Capture The Flag (CTF) frameworks, libraries, resources and softwares |
CVE PoC | List of CVE Proof of Concepts (PoCs) |
Detection Lab | Vagrant & Packer scripts to build a lab environment complete with security tooling and logging best practices |
Forensics | List of awesome forensic analysis tools and resources |
Free Programming Books | Free programming books for developers |
Gray Hacker Resources | Useful for CTFs, wargames, pentesting |
Hacker101 | A free class for web security by HackerOne |
Infosec Getting Started | A collection of resources, documentation, links, etc to help people learn about Infosec |
Infosec Reference | Information Security Reference That Doesn't Suck |
IOC | Collection of sources of indicators of compromise |
Linux Kernel Exploitation | A bunch of links related to Linux kernel fuzzing and exploitation |
Lockpicking | Resources relating to the security and compromise of locks, safes, and keys. |
Machine Learning for Cyber Security | Curated list of tools and resources related to the use of machine learning for cyber security |
Malware Scripts | Useful scripts related with malware |
Payloads | Collection of web attack payloads |
PayloadsAllTheThings | List of useful payloads and bypass for Web Application Security and Pentest/CTF |
Pentest Cheatsheets | Collection of the cheat sheets useful for pentesting |
Pentest Wiki | A free online security knowledge library for pentesters / researchers |
Probable Wordlists | Wordlists sorted by probability originally created for password generation and testing |
Resource List | Collection of useful GitHub projects loosely categorised |
Reverse Engineering | List of Reverse Engineering articles, books, and papers |
RFSec-ToolKit | Collection of Radio Frequency Communication Protocol Hacktools |
Security Cheatsheets | Collection of cheatsheets for various infosec tools and topics |
Security List | Great security list for fun and profit |
Shell | List of awesome command-line frameworks, toolkits, guides and gizmos to make complete use of shell |
ThreatHunter-Playbook | A Threat hunter's playbook to aid the development of techniques and hypothesis for hunting campaigns |
Web Security | Curated list of Web Security materials and resources |
原文:https://github.com/Hack-with-Github/Awesome-Hacking
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 20 次浏览
【流式框架】精选流式框架,应用程序等的精选列表
Awesome Streaming
A curated list of awesome streaming (stream processing) frameworks, applications, readings and other resources. Inspired by other awesome projects.
Website
https://manuzhang.github.io/awesome-streaming/ is a more dynamic website where you can find updates of the awesome projects here.
Table of Contents
- Streaming Engine
- Streaming Library
- Streaming Application
- IoT
- DSL
- Data Pipeline
- Online Machine Learning
- Streaming SQL
- Toolkit
- Benchmark
- Closed Source
- Readings
Streaming Engine
- Apache Apex [Java] - unified platform for big data stream and batch processing.
- Apache Flink [Java] - system for high-throughput, low-latency data stream processing that supports stateful computation, data-driven windowing semantics and iterative stream processing.
- Apache Samza [Scala/Java] - distributed stream processing framework that build on Kafka(messaging, storage) and YARN(fault tolerance, processor isolation, security and resource management).
- Apache Spark Streaming [Scala] - makes it easy to build scalable fault-tolerant streaming applications.
- Apache Storm [Clojure/Java] - distributed real-time computation system. Storm is to stream processing what Hadoop is to batch processing.
- AthenaX [Java] - Uber's Stream Analytics Framework used in production
- Faust [Python] - stream processing library, porting the ideas from Kafka Streams to Python
- Gearpump [Scala] - lightweight real-time distributed streaming engine built on Akka.
- Hazelcast Jet [Java] - A general purpose distributed data processing engine, built on top of Hazelcast.
- hailstorm [Haskell] - distributed stream processing with exactly-once semantics based on Storm.
- heron - Twitter's real-time analytics platform that is fully API-compatible with Storm. Storm has been replaced by Heron at Twitter.
- mupd8(muppet) [Scala/Java] - mapReduce-style framework for processing fast/streaming data.
- Onyx [Clojure] - Distributed, masterless, high performance, fault tolerant data processing.
- s4 [Java] - general-purpose, distributed, scalable, fault-tolerant, pluggable platform that allows programmers to easily develop applications for processing continuous unbounded streams of data.
- SABER [Java/C] - Window-Based Hybrid CPU/GPU Stream Processing Engine.
- SPQR [Java] - dynamic framework for processing high volumn data streams through pipelines.
- tigon [C++/Java] - high throughput real-time streaming processing framework built on Hadoop and HBase.
- Teknek [Java] - Simple elegant stream processing with interactive prototying shell SOL (Stream Operator Language) Mesos, designed for high performance data processing jobs that require flexibility & control.
- Trill [.NET/C#] - Trill is a high-performance one-pass in-memory streaming analytics engine from Microsoft Research.
- Wallaroo [Python] - A fast, stream-processing framework. Wallaroo makes it easy to react to data in real-time. By eliminating infrastructure complexity, going from prototype to production has never been simpler.
Streaming Library
- Apache Kafka Streams [Java] - lightweight stream processing library included in Apache Kafka (since 0.10 version).
- Akka Streams [Scala] - stream processing library on Akka Actors.
- Benthos [Go] - Benthos is a high performance and resilient message streaming service, able to connect various sources and sinks and perform arbitrary actions, transformations and filters on payloads
- FS2(prev. 'Scalaz-Stream') [Scala] - Compositional, streaming I/O library for Scala.
- monix [Scala] - high-performance Scala / Scala.js library for composing asynchronous and event-based programs.
- Streamline [Java] - Stream Analytics Framework by Hortonworks, designed as a wrapper around existing streaming solutions like Storm. Aimed to allow users to drag-and-drop streaming components to focus on business logic.
- StreamAlert [Python] - Airbnb's Real-time Data Analysis and Alerting.
- Swave [Scala] - A lightweight Reactive Streams Infrastructure Toolkit for Scala.
- Streamz [Python] - A lightweight library for building pipelines to manage continuous streams of data; supports complex pipelines that involve branching, joining, flow control, feedback, back pressure, and so on.
- Stream Ops [Java] - A fully embeddable data streaming engine and stream processing API for Java.
Streaming Application
- straw [Python/Java] - A platform for real-time streaming search.
- storm-crawler [Java] - Web crawler SDK based on Apache Storm.
IoT
- sensorbee [Go] - lightweight stream processing engine for IoT.
- Apache Edgent [Java] - a programming model and runtime that enables continuous streaming analytics on gateways and edge devices which can work with centralized systems to provide efficient and timely analytics across the whole IoT ecosystem: from the center to the edge, opens sourced by IBM.
DSL
- Apache Beam [Java] - unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs), open sourced by Google.
- coast [Scala] - a DSL that builds DAGs on top of Samza and provides exactly-once semantics.
- Esper [Java] - component for complex event processing (CEP) and event series analysis.
- Streamparse [Python] - lets you run Python code against real-time streams of data via Apache Storm.
- summingbird [Scala] - library that lets you write MapReduce programs that look like native Scala or Java collection transformations and execute them on a number of well-known distributed MapReduce platforms, including Storm and Scalding.
Data Pipeline
- Apache Kafka [Scala/Java] - distributed, partitioned, replicated commit log service, which provides the functionality of a messaging system, but with a unique design.
- Apache Pulsar [Java] - distributed pub-sub messaging platform with a very flexible messaging model and an intuitive client API.
- brooklin [Java] - a distributed system intended for streaming data between various heterogeneous source and destination systems with high reliability and throughput at scale from Linkedin (replaced databus).
- camus [Java] - Linkedin's Kafka -> HDFS pipeline.
- databus [Java] - Linkedin's source-agnostic distributed change data capture system.
- flume [Java] - distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data.
- metaq [Java] - Taobao's high available, high performance distributed messaging system
- NATS streaming [Go] - fast disk-backed messaging solution
- nsq [Go] - realtime distributed messaging platform designed to operate at scale, handling billions of messages per day.
- suro [Java] - data pipeline service for collecting, aggregating, and dispatching large volume of application events including log data.
- StreamSets Data Collector [Java] - continuous big data ingestion infrastructure that reads from and writes to a large number of end-points, including S3, JDBC, Hadoop, Kafka, Cassandra and many others.
Online Machine Learning
- Apache Samoa [Java] - distributed streaming machine learning (ML) framework that contains a programing abstraction for distributed streaming ML algorithms.
- DataSketches [Java] - sketches library from Yahoo!.
- streamDM [Scala] - mining Big Data streams using Spark Streaming from Huawei.
- StreamingBandit [Python] - Provides a webserver to quickly setup and evaluate possible solutions to contextual multi-armed bandit (cMAB) problems.
- StormCV [Java] - enables the use of Apache Storm for video processing by adding computer vision (CV) specific operations and data model.
- trident-ml [Java] - realtime online machine learning library based on Trident.
- yurita [Scala] - Anomaly detection framework built on Spark Structured Streaming from Paypal.
Streaming SQL
- pipelinedb [C] - An open-source relational database that runs SQL queries continuously on streams, incrementally storing results in tables.
- squall [Java] - Squall executes SQL queries on top of Storm for doing online processing.
- StreamCQL [Java] - Continuous Query Language on RealTime Computation System.
- KSQL [Java] - a Streaming SQL Engine for Apache Kafka.
Benchmark
- storm-benchmark [Java] - a set of benchmarks to test Storm performance.
- storm-perf-test [Java] - a simple storm performance/stress test.
- streaming-benchmarks [Java] - Benchmarks for Low Latency (Streaming) solutions including Apache Storm, Apache Spark, Apache Flink, etc.
- flotilla [Go] - Automated message queue orchestration for scaled-up benchmarking.
Toolkit
- akka [Scala] - toolkit and runtime for building highly concurrent, distributed, and resilient message-driven application on the JVM.
- pulsar [Python] - Actor based event driven concurrent framework for Python.
- aeron [Java/C++] - efficient reliable unicast and multicast message transport.
- StreamFlow [Java] - stream processing tool designed to help build and monitor processing workflows.
- samza-luwak [Java] - uses Luwak, a stored-query engine built on Lucene, to implement full-text search on streams.
- Turbine [Java] - tool for aggregating streams of Server-Sent Event (SSE) JSON data into a single stream.
Closed Source
- Amazon Kinesis Streams [Java] - real-time, fully managed and scalable data stream engine provided by AWS.
- Azure Stream Analytics [.NET] a massively scalable, fully managed, real-time, data stream engine provided by Microsoft Azure.
- concord [C++] - a distributed stream processing framework built in C++ on top of Apache.
- IBM Streams [Python/Java/Scala] - platform for distributed processing and real-time analytics. Provides toolkits for advanced analytics like geospatial, time series, etc. out of the box.
- jubatus [C++] - distributed processing framework and streaming machine learning library.
- LogDevice [C++] - a high-performant distributed system by Facebook for streaming and storing sequential data, using a log structure.
- mantis, tech-blog - Netflix's event stream processing system.
- millwheel - framework for building low-latency data-processing applications that is widely used at Google.
Readings
- In-Stream Big Data Processing
- The world beyond batch: Streaming 101 by Tyler Akidau.
- Real Time Analytics: Algorithms and Systems (VLDB 2015)
原文:https://github.com/manuzhang/awesome-streaming
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 39 次浏览
【流水线工具】精选管道工具包的精选列表
Awesome Pipeline
A curated list of awesome pipeline toolkits inspired by Awesome Sysadmin
Pipeline frameworks & libraries
- ActionChain - A workflow system for simple linear success/failure workflows.
- Adage - Small package to describe workflows that are not completely known at definition time.
- Airflow - Python-based workflow system created by AirBnb.
- Anduril - Component-based workflow framework for scientific data analysis.
- Antha - High-level language for biology.
- Bds - Scripting language for data pipelines.
- BioMake - GNU-Make-like utility for managing builds and complex workflows.
- BioQueue - Explicit framework with web monitoring and resource estimation.
- Bioshake - Haskell DSL built on shake with strong typing and EDAM support
- Bistro - Library to build and execute typed scientific workflows.
- Bpipe - Tool for running and managing bioinformatics pipelines.
- Briefly - Python Meta-programming Library for Job Flow Control.
- Cluster Flow - Command-line tool which uses common cluster managers to run bioinformatics pipelines.
- Clusterjob - Automated reproducibility, and hassle-free submission of computational jobs to clusters.
- Compss - Programming model for distributed infrastructures.
- Conan2 - Light-weight workflow management application.
- Consecution - A Python pipeline abstraction inspired by Apache Storm topologies.
- Cosmos - Python library for massively parallel workflows.
- Cromwell - Workflow Management System geared towards scientific workflows from the Broad Institute.
- Cuneiform - Advanced functional workflow language and framework, implemented in Erlang.
- Dagobah - Simple DAG-based job scheduler in Python.
- Dagr - A scala based DSL and framework for writing and executing bioinformatics pipelines as Directed Acyclic GRaphs.
- Dagster - Python-based API for defining DAGs that interfaces with popular workflow managers for building data applications.
- Dask - Dask is a flexible parallel computing library for analytics.
- Dockerflow - Workflow runner that uses Dataflow to run a series of tasks in Docker.
- Doit - Task management & automation tool.
- Drake - Robust DSL akin to Make, implemented in Clojure.
- Drake R package - Reproducibility and high-performance computing with an easy R-focused interface. Unrelated to Factual's Drake.
- Dray - An engine for managing the execution of container-based workflows.
- eHive - System for creating and running pipelines on a distributed compute resource.
- Fission Workflows - A fast, lightweight workflow engine for serverless/FaaS functions.
- Flex - Language agnostic framework for building flexible data science pipelines (Python/Shell/Gnuplot).
- Flowr - Robust and efficient workflows using a simple language agnostic approach (R package).
- Gc3pie - Python libraries and tools for running applications on diverse Grids and clusters.
- Guix Workflow Language - A workflow management language extension for GNU Guix
- Gwf - Make-like utility for submitting workflows via qsub.
- HyperLoom - Platform for defining and executing workflow pipelines in large-scale distributed environments.
- Joblib - Set of tools to provide lightweight pipelining in Python.
- Jug - A task Based parallelization framework for Python.
- Kedro - Workflow development tool that helps you build data pipelines.
- Ketrew - Embedded DSL in the OCAML language alongside a client-server management application.
- Kronos - Workflow assembler for cancer genome analytics and informatics.
- Loom - Tool for running bioinformatics workflows locally or in the cloud.
- Longbow - Job proxying tool for biomolecular simulations.
- Luigi - Python module that helps you build complex pipelines of batch jobs.
- Makeflow - Workflow engine for executing large complex workflows on clusters.
- Mara - A lightweight, opinionated ETL framework, halfway between plain scripts and Apache Airflow
- Mario - Scala library for defining data pipelines.
- Martian - A language and framework for developing and executing complex computational pipelines.
- MD Studio - Microservice based workflow engine.
- Mistral - Python based workflow engine by the Open Stack project.
- Moa - Lightweight workflows in bioinformatics.
- Nextflow - Flow-based computational toolkit for reproducible and scalable bioinformatics pipelines.
- NiPype - Workflows and interfaces for neuroimaging packages.
- OpenGE - Accelerated framework for manipulating and interpreting high-throughput sequencing data.
- Pachyderm - Distributed and reproducible data pipelining and data management, built on the container ecosystem.
- Parsl - Parallel Scripting Library.
- PipEngine Ruby based launcher for complex biological pipelines.
- Pinball - Python based workflow engine by Pinterest.
- Prefect Core - Python based workflow engine powering Prefect.
- PyFlow - Lightweight parallel task engine.
- PypeFlow - Lightweight workflow engine for data analysis scripting.
- pyperator - Simple push-based python workflow framework using asyncio, supporting recursive networks.
- pyppl - A python lightweight pipeline framework.
- pypyr - Simple task runner for sequential steps defined in a pipeline yaml, with AWS and Slack plug-ins.
- Pwrake - Parallel workflow extension for Rake.
- Qdo - Lightweight high-throughput queuing system for workflows with many small tasks to perform.
- Qsubsec - Simple tokenised template system for SGE.
- Rabix - Python-based workflow toolkit based on the Common Workflow Language and Docker.
- Rain - Framework for large distributed task-based pipelines, written in Rust with Python API.
- Ray - Flexible, high-performance distributed Python execution framework.
- Reflow - Language and runtime for distributed, incremental data processing in the cloud.
- Remake - Make-like declarative workflows in R.
- Rmake - Wrapper for the creation of Makefiles, enabling massive parallelization.
- Rubra - Pipeline system for bioinformatics workflows.
- Ruffus - Computation Pipeline library for Python.
- Ruigi - Pipeline tool for R, inspired by Luigi.
- Sake - Self-documenting build automation tool.
- SciLuigi - Helper library for writing flexible scientific workflows in Luigi.
- SciPipe - Library for writing Scientific Workflows in Go.
- Scoop - Scalable Concurrent Operations in Python.
- Seqtools - Python library for lazy evaluation of pipelined transformations on indexable containers.
- Snakemake - Tool for running and managing bioinformatics pipelines.
- Spiff - Based on the Workflow Patterns initiative and implemented in Python.
- Stolos - Directed Acyclic Graph task dependency scheduler that simplify distributed pipelines.
- Stpipe - File processing pipelines as a Python library.
- Sundial - Jobsystem on AWS ECS or AWS Batch managing dependencies and scheduling.
- Suro - Java-based distributed pipeline from Netflix.
- Swift - Fast easy parallel scripting - on multicores, clusters, clouds and supercomputers.
- Tibanna Tool that helps you run genomic pipelines on Amazon cloud.
- Toil - Distributed pipeline workflow manager (mostly for genomics).
- Yap - Extensible parallel framework, written in Python using OpenMPI libraries.
- Wallaroo - Framework for streaming data applications and algorithms that react to real-time events.
- WorldMake - Easy Collaborative Reproducible Computing.
- Zenaton - Workflow engine for orchestrating jobs, data and events across your applications and third party services
Workflow platforms
- ActivePapers - Computational science made reproducible and publishable.
- Apache Iravata - Framework for executing and managing computational workflows on distributed computing resources.
- Arteria - Event-driven automation for sequencing centers. Initiates workflows based on events.
- Arvados - A container based workflow platform.
- Biokepler - Bioinformatics Scientific Workflow for Distributed Analysis of Large-Scale Biological Data.
- Butler - Framework for running scientific workflows on public and academic clouds.
- Chipster - Open source platform for data analysis.
- Clubber - Cluster Load Balancer for Bioinformatics e-Resources.
- Digdag - Workflow manager designed for simplicity, extensibility and collaboration.
- Fireworks - Centralized workflow server for dynamic workflows of high-throughput computations.
- Galaxy - Web-based platform for biomedical research.
- Kepler - Kepler scientific workflow application from University of California.
- KNIME Analytics Platform - General-purpose platform with many specialized domain extensions.
- NextflowWorkbench - Integrated development environment for Nextflow, Docker and Reusable Workflows.
- omega|ml DataOps Platform - Data & model pipeline deployment for humans - integrated, scalable, extensible.
- OpenMOLE - Workflow Management System for exploration of models and parameter optimization.
- Ophidia - Data-analytics platform with declarative workflows of distributed operations.
- Pegasus - Workflow Management System.
- Pentaho Kettle - Workflow platform with a graphical design environment.
- Piper - Distributed workflow engine designed to be dead simple.
- Polyaxon - A platform for machine learning experimentation workflow.
- Reana - Platform for reusable research data analyses developed by CERN.
- Sushi - Supporting User for SHell script Integration.
- Yabi - Online research environment for grid, HPC and cloud computing.
- Taverna - Domain independent workflow system.
- VisTrails - Scientific workflow and provenance management system.
- Wings - Semantic workflow system utilizing Pegasus as execution system.
- Watchdog - Workflow management system for the automated and distributed analysis of large-scale experimental data.
Workflow languages
- Common Workflow Language
- Cloudgene Workflow Language
- OpenMOLE DSL
- Workflow Description Language
- Yet Another Workflow Language
- Pipelines
Workflow standardization initiatives
- Workflow 4 Ever Initiative
- Workflow 4 Ever workflow research object model
- Workflow Patterns Initiative
- Workflow Patterns Library
- ResearchObject.org
Literate programming (aka interactive notebooks)
- Beaker Notebook-style development environment.
- Binder - Turn a GitHub repo into a collection of interactive notebooks powered by Jupyter and Kubernetes
- IPython A rich architecture for interactive computing.
- Jupyter Language-agnostic notebook literate programming environment.
- Pathomx - Interactive data workflows built on Python.
- R Notebooks - R Markdown notebook literate programming environment.
- SoS - Readable, interactive, cross-platform and cross-language data science workflow system.
- Zeppelin - Web-based notebook that enables interactive data analytics.
Extract, transform, load (ETL)
- Cadence Distributed, scalable, durable, and highly available orchestration engine developed by Uber.
- LinkedPipes ETL - Linked Data publishing and consumption ETL tool.
- Kiba ETL - A data processing & ETL framework for Ruby.
Application management workflows
- Argo - Get stuff done with container-native workflows for Kubernetes.
- Deis - Workflow system to create and manage applications on Kubernetes.
Build automation tools
- Bazel - Build software just as engineers do at Google.
- DoIt - Highly generalized task-management and automation in Python.
- Gradle - Unified cross platforms builds.
- Scons - Python library focused on C/C++ builds.
- Shake - Define robust build systems akin to GNU Make using Haskell.
- Make - The GNU Make build system.
- Prodmodel - Build system for data science pipelines.
Other projects
- HPC Grid Runner
- noWorkflow - Supporting infrastructure to run scientific experiments without a scientific workflow management system, and still get things like provenance.
- Reprozip - Simplifies the process of creating reproducible experiments from command-line executions.
Related lists
- Awesome streaming - Curated list of awesome streaming frameworks, applications.
- Awesome ETL - Curated list of notable ETL (extract, transform, load) frameworks, libraries and software.
- Computational Data Analysis Workflow Systems
原文:https://github.com/pditommaso/awesome-pipeline
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 64 次浏览
【系统工具】精选的开源sysadmin资源列表
Awesome Sysadmin
Table of Contents
- Awesome Sysadmin
- Backups
- Build Automation
- ChatOps
- Cloning
- Cloud Computing
- Cloud Storage
- Code Review
- Collaborative Software
- Configuration Management Database
- Configuration Management
- Continuous Integration & Continuous Deployment
- Control Panels
- Deployment Automation
- Diagramming
- Distributed Filesystems
- DNS
- Editors
- IT Asset Management
- LDAP
- Log Management
- Mail Servers
- Messaging
- Monitoring
- Metric & Metric Collection
- Network Configuration Management
- Newsletter
- NoSQL
- Packaging
- Queuing
- RDBMS
- Security
- Service Discovery
- Software Containers
- SSH
- Statistics
- Status Pages
- Ticketing systems
- Troubleshooting
- Project Management
- Version control
- Virtualization
- VPN
- Web
- Webmails
- Wikis
- Resources
Backups
Backup software.
- Amanda - Client-server model backup tool.
- Attic - A deduplicating backup program written in Python.
- Bacula - Another Client-server model backup tool.
- Bareos - A fork of Bacula backup tool.
- Barman - Backup and Recovery Manager for disaster recovery of PostgreSQL servers.
- Backupninja - Lightweight, extensible meta-backup system.
- Backuppc - Client-server model backup tool with file pooling scheme.
- Brebis - A fully automated backup checker.
- Bup - Incremental backups with rolling checksums, git packfiles, de-duplication, and a FUSE filesystem.
- Burp - Network backup and restore program.
- Duplicati - Multiple backends, encryption, web-ui and multi-OS backup tool.
- Duplicity - Encrypted bandwidth-efficient backup using the rsync algorithm.
- FreeFileSync - Folder comparison and synchronization tool.
- Lsyncd - File Monitor which spawns a process to synchronize the changes (rsync by default).
- restic - Fast, secure, efficient backup program
- Rsnapshot - Filesystem Snapshotting Utility.
- SafeKeep - Centralized pull-based backup using
rdiff-backup
. - Snebu – Snapshot backup with global multi-client deduplication and transparent compression.
- UrBackup - Another client-server backup system.
- ZBackup - A versatile deduplicating backup tool.
Backup libraries.
- Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems.
- DREBS - AWS EBS backup script that supports strategies.
Build Automation
Build automation tools.
- Apache Ant - Automation build tool, similar to make, written in Java.
- Apache Maven - Build automation tool mainly for Java.
- GNU Make - The most popular automation build tool for many purposes.
- Gradle - Another open source build automation system.
ChatOps
Conversation-driven development & management.
- CloudBot - The simple, fast, expandable, open-source Python IRC bot.
- Eggdrop - The world's most popular Open Source IRC bot, designed for flexibility and ease of use.
- Err - A plugin based chatbot designed to be easily deployable, extensible and maintainable.
- Hubot - A customizable, life embetterment robot.
- Lazlo - A chatops automation framework in Go.
- Lita - A robot companion for your company's chat room.
- KeyBase - Encrypted chat, cloud and git.
Cloning
Cloning software.
- Clonezilla - Partition and disk imaging/cloning program.
- Fog - Another computer cloning solution.
- Redo Backup - Easy Backup, Recovery and Restore.
Cloud Computing
- AppScale - Open source cloud software with Google App Engine compatibility.
- Archipel - Manage and supervise virtual machines using Libvirt.
- CloudStack - Cloud computing software for creating, managing, and deploying infrastructure cloud services.
- Cobbler - Cobbler is a Linux installation server that allows for rapid setup of network installation environments.
- Eucalyptus - Open source private cloud software with AWS compatibility.
- Mesos - Develop and run resource-efficient distributed systems.
- OpenNebula - An user-driven cloud management platform for sysadmins and devops.
- Openshift Origin - Open source upstream of OpenShift, the next generation application hosting platform developed by Red Hat.
- OpenStack - Open source software for building private and public clouds.
- The Foreman - Foreman is a complete lifecycle management tool for physical and virtual servers. FOSS.
- Tsuru - Tsuru is an extensible and open source Platform as a Service software.
- Terraform - Terraform allows you to practice infrastructure as code and is commonly used for AWS/GCE.
Cloud Orchestration
- BOSH - IaaS orchestration platform originally written for deploying and managing Cloud Foundry PaaS, but also useful for general purpose distributed systems.
- Ansible - Contains modules for controlling many types of cloud resources.
- Cloudify - Open source TOSCA-based cloud orchestration software platform written in Python and YAML.
- consul - It is a tool for discovering and configuring services in your infrastructure.
- doozerd - Doozer is a highly-available, completely consistent store for small amounts of extremely important data.
- etcd - A highly-available key value store for shared configuration and service discovery.
- Juju - Cloud orchestration tool which manages services as charms, YAML configuration and deployment script bundles.
- MCollective - Ruby framework to manage server orchestration, developed by Puppet labs.
- Overcast - Deploy VMs across different cloud providers, and run commands and scripts across any or all of them in parallel via SSH.
- Rundeck - Simple orchestration tool.
- Salt - Fast, scalable and flexible systems management software written in Python/ZeroMQ.
- serf - Serf is a tool for cluster membership.
- StackStorm - Event Driven Operations and ChatOps platform for infrastructure management. Written in Python.
- zookeeper - ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Cloud Storage
- git-annex assistant - A synchronised folder on each of your OSX and Linux computers, Android devices, removable drives, NAS appliances, and cloud services.
- nextCloud - Provides access to your files via the web
- ownCloud - Provides universal access to your files via the web, your computer or your mobile devices.
- Seafile - Another Open Source Cloud Storage solution.
- SparkleShare - Provides cloud storage and file synchronization services. By default, it uses Git as a storage backend.
- Swift - A highly available, distributed, eventually consistent object/blob store.
- Syncthing - Open Source system for private, encrypted and authenticated distribution of data.
Code Review
Web Based collaborative code review system.
- Gerrit - Based on the Git version control, it facilitates software developers to review modifications to the source code and approve or reject those changes.
- Phabricator - Code review tool build by facebook and used by WikiMedia, FB, dropbox etc. Comes with an integrated wiki, bug tracker, VC integration and a CLI tool called arcanist.
- Review Board - Web-based collaborative code review tool.
Collaborative Software
Collaborative software or groupware suites.
- Citadel/UX - Collaboration suite (messaging and groupware) that is descended from the Citadel family of programs.
- EGroupware - Groupware software written in PHP.
- Horde Groupware - PHP based collaborative software suite that includes email, calendars, wikis, time tracking and file management.
- Kolab - Another groupware suite.
- SOGo - Collaborative software server with a focus on simplicity and scalability.
- Zimbra - Collaborative software suite, that includes an email server and web client.
Configuration Management Database
Configuration management database (CMDB) software.
- Clusto - Helps you keep track of your inventory, where it is, how it's connected, and provides an abstracted interface for interacting with the elements of the infrastructure.
- Collins - At Tumblr, it's the infrastructure source of truth and knowledge.
- i-doit - Open Source IT Documentation and CMDB.
- iTop - Complete open source, ITIL, web based service management tool.
- Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
- Sicekit - The systems & infrastructure encyclopaedia toolkit (based on MediaWiki).
Configuration Management
Configuration management tools.
- Ansible - It's written in Python and manages the nodes over SSH.
- CFEngine - Lightweight agent system. Configuration state is specified via a declarative language.
- Chef - It's written in Ruby and Erlang and uses a pure-Ruby DSL.
- mgmt - Next generation config management written in Go.
- Pallet - Infrastructure definition, configuration and management via a Clojure DSL.
- Puppet - It's written in Ruby and uses Puppet's declarative language or a Ruby DSL.
- (R)?ex - It's written in Perl and use plain Perl, over SSH without agent.
- Salt - It's written in Python.
- Slaughter - It's written in Perl.
Continuous Integration & Continuous Deployment
Continuous integration/deployment software.
- Buildbot - Python-based toolkit for continuous integration.
- Drone - Continuous integration server built on Docker and configured using YAML files.
- GitLab CI - Based off of ruby. They also provide GitLab, which manages git repositories.
- Go - Open source continuous delivery server.
- Jenkins - An extendable open source continuous integration server.
- Concourse CI - A pipeline-based CI system written in Go.
- Spinnaker - Open source, multi-cloud continuous delivery platform for releasing software changes.
- TeamCity - Powerful Continuous Integration out of the box
Control Panels
Web hosting and server control panels.
- Ajenti - Control panel for Linux and BSD.
- Cockpit - New multi-server web interface for Linux servers written in C.
- Feathur - VPS Provisioning and Management Software.
- Froxlor - Easy to use panel for Linux with Nginx and PHP-FPM support.
- ISPConfig - Hosting control panel for Linux.
- Sentora - Control panel for Linux, BSD, and Windows based on ZPanel.
- VestaCP - Hosting panel for Linux but with Nginx.
- Virtualmin - Control panel for Linux based on webmin.
- Webmin - Linux server control panel.
- ZPanel - Control panel for Linux, BSD, and Windows.
Deployment Automation
Tools and scripts to support deployments to your servers.
- Capistrano - Deploy your application to any number of machines simultaneously, in sequence or as a rolling set via SSH (rake based).
- Fabric - Python library and cli tool for streamlining the use of SSH for application deployment or systems administration tasks.
- Mina - Really fast deployer and server automation tool (rake based).
- Rocketeer - PHP task runner and deployment tool.
- Vlad the Deployer - Deployment automation (rake based).
Diagramming
Tools to diagram networks.
- drawthe.net - Draws network diagrams dynamically from a text file describing the placement, layout and icons.
Distributed Filesystems
Network distributed filesystems.
- Ceph - Distributed object store and file system.
- DRBD - Distributed Replicated Block Device.
- LeoFS - Unstructured object/data storage and a highly available, distributed, eventually consistent storage system.
- GlusterFS - Scale-out network-attached storage file system.
- HDFS - Distributed, scalable, and portable file-system written in Java for the Hadoop framework.
- Lustre - A type of parallel distributed file system, generally used for large-scale cluster computing.
- MooseFS - Fault tolerant, network distributed file system.
- MogileFS - Application level, network distributed file system.
- OpenAFS - Distributed network file system with read-only replicas and multi-OS support.
- TahoeLAFS - secure, decentralized, fault-tolerant, peer-to-peer distributed data store and distributed file system.
- XtreemFS - XtreemFS is a fault-tolerant distributed file system for all storage needs.
DNS
DNS servers.
- Bind - The most widely used name server software.
- djbdns - A collection of DNS applications, including tinydns.
- Designate - DNS REST API that support several DNS servers as its backend.
- dnsmasq - A lightweight service providing DNS, DHCP and TFTP services to small-scale networks.
- Knot - High performance authoritative-only DNS server.
- NSD - Authoritative only, high performance, simple name server.
- PowerDNS - DNS server with a variety of data storage back-ends and load balancing features.
- Unbound - Validating, recursive, and caching DNS resolver.
- Yadifa - Lightweight authoritative Name Server with DNSSEC capabilities powering the .eu top-level domain.
Editors
Open source code editors.
- Atom - A hackable text editor from GitHub.
- Brackets - Open source code editor for web designers and front-end developers.
- Eclipse - IDE written in Java with an extensible plug-in system.
- Geany - GTK2 text editor.
- GNU Emacs - An extensible, customizable text editor-and more.
- Haroopad - Markdown editor with live preview.
- ICEcoder - Code editor awesomeness, built with common web languages.
- IntellijIDEA - Capable and ergonomic IDE, written in Java, It has a lot of plug-ins.
- jotgit - Git-backed real-time collaborative code editing.
- Light Table - The next generation code editor.
- Lime - Aims to provide an open source solution to Sublime Text
- SciTE - A SCIntilla based Text Editor.
- TextMate - A graphical text editor for OS X.
- Vim - A highly configurable text editor built to enable efficient editing.
- Nano - A popular text editor, by default comes with most Linux distributions.
- Visual Studio Code - Fast, hackable, multi-platform code editor from Microsoft.
IT Asset Management
IT Assets Management software.
- GLPI - Information Resource-Manager with an additional Administration Interface.
- OCS Inventory NG - Enables users to inventory their IT assets.
- Netbox - IP address management (IPAM) and data center infrastructure management (DCIM) tool.
- RackTables - Datacenter and server room asset management like document hardware assets, network addresses, space in racks, networks configuration.
- Ralph - Asset management, DCIM and CMDB system for large Data Centers as well as smaller LAN networks.
- Snipe IT - Asset & license management software.
- OpenDCIM - A web based Data Center Infrastructure Management application.
LDAP
LDAP servers.
- 389 Directory Server - Developed by Red Hat.
- Apache Directory Server - Apache Software Foundation project written in Java.
- Fusion Directory - Improve the Management of the services and the company directory based on OpenLDAP.
- OpenDJ - Fork of OpenDS.
- OpenDS - Another directory server written in Java.
- OpenLDAP - Developed by the OpenLDAP Project.
LDAP management
- Apache Directory Studio - The Eclipse-based LDAP browser and directory client
Log Management
Log management tools: collect, parse, visualize ...
- Echofish - A web based real-time event log aggregation, analysis, monitoring and management system.
- Elasticsearch - A Lucene Based Document store mainly used for log indexing, storage and analysis.
- Fluentd - Log Collector and Shipper.
- Flume - Distributed log collection and aggregation system.
- Graylog2 - Pluggable Log and Event Analysis Server with Alerting options.
- Heka - Stream processing system which may be used for log aggregation.
- Kibana - Visualize logs and time-stamped data.
- Logstash - Tool for managing events and logs.
- Octopussy - Log Management Solution (Visualize / Alert / Report).
Mail Servers
Mail Delivery Agents (IMAP/POP3 software).
- Courier IMAP/POP3 - Fast, scalable, enterprise IMAP and POP3 server.
- Cyrus IMAP/POP3 - Intended to be run on sealed servers, where normal users are not permitted to log in.
- Dovecot - IMAP and POP3 server written primarily with security in mind.
- Qpopper - One of the oldest and most popular server implementations of POP3.
Mail Transfer Agents (SMTP servers).
- Exim - Message transfer agent (MTA) developed at the University of Cambridge.
- Haraka - A high-performance, pluginable SMTP server written in JavaScript.
- MailCatcher - Ruby gem that deploys a simply SMTP MTA gateway that accepts all mail and displays in web interface. Useful for debugging or development.
- Maildrop - Open Source disposable email SMTP server, also useful for development.
- OpenSMTPD - Secure SMTP server implementation from the OpenBSD project.
- Postfix - Fast, easy to administer, and secure Sendmail replacement.
- Qmail - Secure Sendmail replacement.
- Sendmail - Message transfer agent (MTA).
Complete solutions.
- Mail-in-a-Box - Take back control of your email with this easy-to-deploy mail server in a box.
- iRedMail - Full-featured mail server solution based on Postfix and Dovecot.
Messaging
XMPP servers.
- ejabberd - XMPP instant messaging server written in Erlang/OTP.
- Metronome IM - Fork of Prosody IM.
- MongooseIM - Fullstack real-time mobile messaging platform (XMPP+REST) in Erlang
- Openfire - Real time collaboration (RTC) server.
- Prosody IM - XMPP server written in Lua.
- Tigase - XMPP server implementation in Java.
XMPP web clients.
- Candy - Multi user XMPP client written in Javascript.
- Kaiwa - Web based chat client in the style of common paid alternatives.
Webchats.
- Lets-Chat - A self hosted chat suite written in Node.
Monitoring
Monitoring software.
- Alerta - Distributed, scaleable and flexible monitoring system.
- Canopsis - Opensource Hypervision and Data Aggregation Software
- Cacti - Web-based network monitoring and graphing tool.
- Cabot - Monitoring and alerts, similar to PagerDuty.
- Centreon - IT infrastructure and application monitoring for service performance.
- check_mk - Collection of extensions for Nagios.
- Flapjack - Monitoring notification routing & event processing system.
- Icinga - Fork of Nagios.
- LibreNMS - fork of Observium.
- Monit - Small Open Source utility for managing and monitoring Unix systems.
- Munin - Networked resource monitoring tool.
- Naemon - Network monitoring tool based on the Nagios 4 core with performance enhancements and new features.
- Nagios - Computer system, network and infrastructure monitoring software application.
- Node-Bell - Real-time anomalies detection for periodic time series, metrics monitor.
- Observium - SNMP monitoring for servers and networking devices. Runs on linux.
- Opsview - Based on Nagios 4, Opsview Core is ideal for small IT and test environments.
- Riemann - Flexible and fast events processor allowing complex events/metrics analysis.
- Sensu - Open source monitoring framework.
- Sentry - Application monitoring, event logging and aggregation.
- Serverstats - A simple tool for creating graphs using rrdtool. (source on github)
- Seyren - An alerting dashboard for Graphite.
- Shinken - Another monitoring framework.
- Xymon - Network monitoring inspired by Big Brother.
- Zabbix - Enterprise-class software for monitoring of networks and applications.
- Zenoss - Application, server, and network management platform based on Zope.
Monitoring dashboards.
- Adagios - Web based Nagios configuration interface.
- Dash - A low-overhead monitoring web dashboard for a GNU/Linux machine.
- Thruk - Multibackend monitoring web interface with support for Naemon, Nagios, Icinga and Shinken.
- Uchiwa - Simple dashboard for the Sensu monitoring framework.
Monitoring distributions.
- OMD - The Open Monitoring Distribution.
Metric & Metric Collection
Metric gathering and display software.
- Collectd - System statistic collection daemon.
- Collectl - High precision system performance metrics collecting tool.
dashing- No Longer Maintained - Ruby gem that allows for rapid statistical dashboard development. An all HTML5 approach allows for big screen displays in data centers or conference rooms.- Smashing - Ruby gem that allows for rapid statistical dashboard development. An all HTML5 approach allows for big screen displays in data centers or conference rooms. Fork of Dashing.
- Diamond - Python based statistic collection daemon.
- Facette - Time series data visualization and graphing software written in Go.
- Freeboard - A damn-sexy front-end real-time dashboard. Transforms raw JSON into delicious UI.
- Ganglia - High performance, scalable RRD based monitoring for grids and/or clusters of servers. Compatible with Graphite using a single collection process.
- Grafana - A Graphite & InfluxDB Dashboard and Graph Editor.
- Graphite - Open source scalable graphing server.
- InfluxDB - Open source distributed time series database with no external dependencies.
- KairosDB - Fast distributed scalable time series database, fork of OpenTSDB 1.x.
- NetData - Distributed real-time performance and health monitoring.
- OpenTSDB - Store and server massive amounts of time series data without losing granularity.
- Packetbeat - Captures network traffic and displays it in a custom Kibana dashboard for easy viewing.
- Prometheus - Service monitoring system and time series database.
- RRDtool - Open source industry standard, high performance data logging and graphing system for time series data.
- Statsd - Application statistic listener.
Network Configuration Management
Network configuration management tools.
- GestióIP - An automated web based IPv4/IPv6 IP Address Management tool.
- NOC Project - Scalable, high-performance and open-source OSS system for ISP, service and content providers.
- Netbox - IP address management (IPAM) and data center infrastructure management (DCIM) tool.
- Oxidized - A modern take on network device configuration monitoring with web interface and GIT storage.
- phpIPAM - Open source IP address management with PowerDNS integration.
- RANCID - Monitors network device's configuration and maintain history of changes.
- rConfig - Another network device configuration management tool.
- trigger - Robust network automation toolkit written in Python.
Newsletters
Newsletter software.
NoSQL
Column-Family.
- Apache HBase - Hadoop database, a distributed, big data store.
- Cassandra - Distributed DBMS designed to handle large amounts of data across many servers.
- Hypertable - C++ based BigTable-like DBMS, communicates through Thrift and runs either as stand-alone or on distributed FS such as Hadoop.
Document Store.
- CouchDB - Ease of use, with multi-master replication document-oriented database system.
- ElasticSearch - Java based database, popular with log aggregation, and email archiving projects.
- MongoDB - Another document-oriented database system.
- RavenDB - Document based database with ACID/Transactional features.
- RethinkDB - Open source distributed document store database, focuses on JSON.
Graph.
Key-Value.
- Couchbase - In-memory, replicated, peristent key/value datastore.
- LevelDB - Google's high performance key/value database.
- Redis - Networked, in-memory, key-value data store with optional durability.
- Riak - Another fault-tolerant key-value NoSQL database.
Packaging
- fpm - Versatile multi format package creator.
- omnibus-ruby - Full stack, cross distro packaging software (Ruby).
- packman - Full stack, cross distro packaging software (Python).
- tito - Builds RPMs for git-based projects.
Queuing
Queuing software.
- ActiveMQ - An open source message broker written in Java together with a full JMS client.
- BeanstalkD - A simple, fast work queue.
- Gearman - Fast multi-language queuing/job processing platform.
- Kafka - A high-throughput distributed messaging system.
- NSQ - A realtime distributed messaging platform.
- RabbitMQ - Robust, fully featured, cross distro queuing system.
Queuing libraries.
- ZeroMQ - High-performance asynchronous messaging library.
RDBMS
Relational DBMS.
- Firebird - True universal open source database.
- Galera - Galera Cluster for MySQL is an easy-to-use high-availability solution with high system up-time, no data loss, and scalability for future growth.
- MariaDB - Community-developed fork of the MySQL.
- MySQL - Most popular RDBMS server.
- Percona Server - Enhanced, drop-in MySQL replacement.
- PostgreSQL - Object-relational database management system (ORDBMS).
- PostgreSQL-XL - Scalable Open Source PostgreSQL-based database cluster.
- SQLite - Library that implements a self-contained, serverless, zero-configuration, transactional SQL DBS.
Security
Security tools.
- Blackbox - Safely store secrets in Git/Mercurial. Provides tooling to automatically encrypt secrets like passwords.
- Denyhosts - Thwart SSH dictionary based attacks and brute force attacks.
- Fail2Ban - Scans log files and takes action on IPs that show malicious behavior.
- fwknop - Protects ports via Single Packet Authorization in your firewall.
- Glastopf - A low-interaction web application honeypot to emulate vulnerabilities and gather attack data.
- Kippo - A medium-interaction SSH honeypot, mostly used as a standalone SSH daemon with a configurable Filesystem sandbox.
- OSSEC - OSSEC is a HIDS that performs log analysis, FIM, rootkit detection, and much more.
- OSQuery - Query your servers status and info using a SQL like interface.
- pfSense - Firewall and Router FreeBSD distribution.
- Snort - Snort is a free and open source network intrusion prevention system (NIPS) and network intrusion detection system (NIDS) created by Martin Roesch in 1998.
- SpamAssassin - A powerful and popular email spam filter employing a variety of detection technique.
- BounCA - BounCA is a personal SSL / Certificate Authority Key management tool. Create self-signed SSL certificates via your browser. (Source Code)
Apache
Python
Service Discovery
- Consul - Consul is a tool for service discovery, monitoring and configuration.
- Doozerd - Doozer is a highly-available, completely consistent store for small amounts of extremely important data.
- ZooKeeper - ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Software Containers
Operating system–level virtualization.
- Bitnami - Produces open source installers or software packages for web applications and development stacks as well as virtual appliances.
- Docker - Open platform for developers and sysadmins to build, ship, and run distributed applications.
- LXC - Userspace interface for the Linux kernel containment features.
- LXD - LXD is a container "hypervisor".
- OpenVZ - Container-based virtualization for Linux.
- Docker Compose - Fast, isolated development environments using Docker.
- Singularity - Flexible containers without root.
SSH
SSH tools.
- Advanced SSH config - Enhances ssh_config file capabilities, completely transparent.
- autossh - Automatically respawn ssh session after network interruption.
- Cluster SSH - Controls a number of xterm windows via a single graphical console.
- DSH - Dancer's shell / distributed shell - Wrapper for executing multiple remote shell commands from one command line.
- Mosh - The mobile shell.
- parallel-ssh - Provides parallel versions of OpenSSH and related tools.
- pdsh - Pdsh is a high-performance, parallel remote shell utility.
- SSH Power Tool - Execute commands and upload files to many servers simultaneously without using pre-shared keys.
- sshrc - sources ~/.sshrc on your local computer after logging in remotely.
- stormssh - A command line tool to manage SSH connections.
Statistics
Analytics software.
- Analog - Logfile Analyser.
- AWStats - Generates web, streaming, ftp or mail server statistics graphically.
- GoAccess - Real-time web log analyzer and interactive viewer that runs in a terminal.
- Open Web Analytics - Add web analytics to websites using JS, PHP or REST APIs.
- Piwik - Web analytics application.
- Webalizer - Fast, free web server log file analysis program.
Status Pages
- Cachet - An open source status page system written in PHP.
Ticketing systems
Web-based ticketing system.
- Bugzilla - General-purpose bugtracker and testing tool originally developed and used by the Mozilla project.
- Cerb - Group-based e-mail management project.
- Flyspray - Web-based bug tracking system written in PHP.
- MantisBT - Web-based bug tracking system.
- osTicket - Simple support ticket system.
- OTRS - Trouble ticket system for assigning tickets to incoming queries and tracking further communications.
- Redmine - Open source project management/ticketing web application written in Ruby.
- Request Tracker - Ticket-tracking system written in Perl.
- TheBugGenie - Ticket system with extensive user rights system.
Troubleshooting
Troubleshooting tools.
- mitmproxy - A Python tool used for intercepting, viewing and modifying network traffic. Invaluable in troubleshooting certain problems.
- Sysdig - Capture system state and activity from a running Linux instance, then save, filter and analyze.
- Wireshark - The world's foremost network protocol analyzer.
Troubleshooting distributions.
- Trinity Rescue Kit - Linux Live CD for general computer troubleshooting.
Project Management
Web-based project management and bug tracking systems.
- ChiliProject - Fork of Redmine.
- GitBucket Clone of GitHub written in Scala; single jar install.
- GitLab - Clone of GitHub written in Ruby.
- Gogs - Self-hosted Git service written in Go.
- OpenProject - Project collaboration with open source.
- Phabricator Written in PHP.
- Redmine - Written in ruby on rails.
- Taiga - Agile, Free, Open Source Project Management Tool based on the Kanban and Scrum methods.
- The Bug Genie - Written in PHP.
- Trac - Written in python.
Version control
Software versioning and revision control.
- Fossil - Distributed version control with built-in wiki and bug tracking.
- Git - Distributed revision control and source code management (SCM) with an emphasis on speed.
- GNU Bazaar - Distributed revision control system sponsored by Canonical.
- Mercurial - Another distributed revision control.
- Subversion - Client-server revision control system.
Virtualization
Virtualization software.
- Archipel - XMPP based virtualization management platform.
- Ganeti - Cluster virtual server management software tool built on top of KVM and Xen.
- KVM - Linux kernel virtualization infrastructure.
- OpenNebula - Flexible enterprise cloud made simple.
- oVirt - Manages virtual machines, storage and virtual networks.
- Packer - A tool for creating identical machine images for multiple platforms from a single source configuration.
- Proxmox VE - Complete open source virtualization management solution.
- QEMU - QEMU is a generic and open source machine emulator and virtualizer.
- Vagrant - Tool for building complete development environments.
- VirtualBox - Virtualization product from Oracle Corporation.
- Xen - Virtual machine monitor for 32/64 bit Intel / AMD (IA 64) and PowerPC 970 architectures.
VPN
VPN software.
- OpenVPN - Uses a custom security protocol that utilizes SSL/TLS for key exchange.
- Pritunl - OpenVPN based solution. Easy to set up.
- SoftEther - Multi-protocol software VPN with advanced features
- sshuttle - Poor man's VPN.
- strongSwan - Complete IPsec implementation for Linux.
- tinc - Distributed p2p VPN.
- wireguard - New minimal VPN Solution that is very fast.
Web
Web servers.
- Apache - Most popular web server.
- Caddy - The HTTP/2 Web Server with Fully Managed TLS.
- Cherokee - Lightweight, high-performance web server/reverse proxy.
- Lighttpd - Web server more optimized for speed-critical environments.
- Nginx - Reverse proxy, load balancer, HTTP cache, and web server.
- uWSGI - The uWSGI project aims at developing a full stack for building hosting services.
Web Performance.
- HAProxy - Software based load Balancing, SSL offloading and performance optimization, compression, and general web routing.
- Squid - Caching proxy for the web supporting HTTP, HTTPS, FTP, and more.
- Traefik - Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
- Varnish - HTTP based web application accelerator focusing on optimizing caching and compression.
Webmails
Webmail applications.
- Mailpile - A modern, fast web-mail client with user-friendly encryption and privacy features.
- Roundcube - Browser-based IMAP client with an application-like user interface.
- SquirrelMail - Another browser-based IMAP client.
Wikis
Wiki software.
- BookStack - A simple, user-friendly wiki built with PHP that uses MySQL for storage.
- DokuWiki - Simple to use and highly versatile wiki that doesn't require a database.
- Gollum - A simple, Git-powered wiki with a sweet API and local frontend.
- ikiwiki - A wiki compiler.
- MDwiki - Wiki completely built in HTML5/Javascript and runs 100% on the client.
- MediaWiki - Used to power Wikipedia.
- MoinMoin - An advanced, easy to use and extensible WikiEngine with a large community of users.
- Ōlelo Wiki - A a wiki that stores pages in a Git repository.
- TiddlyWiki - Complete interactive wiki in JavaScript.
Resources
Various resources, such as books, websites and articles, for improving your skills and knowledge.
Blogs
- Code as Craft - Etsy's Ops blog, lots of technical posts.
- DevOpsGuys - Devops consultants who blog about operations.
- Rackspace Developers - Slightly biased blog with lots of Devops Topics.
Books
Sysadmin related books.
- [Learn Cisco Network Administration in a Month of Lunches] (https://www.manning.com/books/learn-cisco-network-administration-in-a-month-of-lunches) - A tutorial designed for sysadmins who need to learn how to administer Cisco switches and routers.
- The Linux Command Line - A book about the Linux command line by William Shotts.
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win - How DevOps techniques can fix the problems that happen in IT organizations.
- The Practice of System and Network Administration - The first and second editions describes the best practices of system and network administration, independent of specific platforms or technologies.
- The Visible Ops Handbook: Implementing ITIL in 4 Practical and Auditable Steps - Is a methodology designed to jumpstart implementation of controls and process improvement.
- UNIX and Linux System Administration Handbook - Approaches system administration from a practical perspective.
- Securing DevOps - A book on Security techniques for DevOps that reviews state of the art practices used in securing web applications and their infrastructure.
Newsletters
- Servers for Hackers - Newsletter for programmers who find themselves needing to know their way around a server.
- DevOpsLinks - A community of DevOps, SysAdmin & Developers with a weekly newsletter and a team chat.
Repositories
Debian-based distributions.
- Dotdeb - Repository with LAMP updated packages for Debian.
RPM-based distributions.
- ElRepo - Community Repo for Enterprise Linux (RHEL, CentOS, etc).
- EPEL - Repository for RHEL and compatibles (CentOS, Scientific Linux).
- Remi - Repository with LAMP updated packages for RHEL/Centos/Fedora.
- Software Collections - Community Release of Red Hat Software Collections. Provides updated packages of Ruby, Python, etc. for CentOS/Scientific Linux 6.x.
Websites
Useful sysadmin related websites.
- Ops School - Comprehensive program that will help you learn to be an operations engineer.
- Digital Ocean Tutorials - A surprisingly vast resource for getting the basics of certain applications, tools, or even systems administration topics.
原文:https://github.com/huiwenhan/awesome-sysadmin
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 229 次浏览
【网络工具】GoReplay :进行测试和监视的瑞士军刀
快速行动而不会破坏事物
GoReplay是一个开源网络监视工具,可以记录您的实时流量,并将其用于影子,负载测试或详细的分析和监视。
进行测试和监视的瑞士军刀
阴影,也称为流量镜像或暗流量
系统的行为取决于环境和流量模式。通过集成或手动测试无法发现一整层错误。
GoReplay为您提供了一个简单的想法,可以重用现有流量进行测试:您可以选择部分生产流量并将其重播到测试环境,同时能够即时过滤和重写请求。
我们先进的技术可在不影响您的应用程序的情况下分析和记录网络流量,从而消除了将第三方组件置于关键路径中带来的风险。
GoReplay增强了您对代码部署,配置更改和基础架构更改的信心,并确保您的应用程序不会被边缘情况绊倒,边缘情况只会在您上线后才会出现。
学到更多
负载测试
编写综合测试非常困难,因为要真正复制生产流量模式几乎是不可能的。人类,浏览器和机器人都会做一些奇怪的事情,这些事情会影响请求的频率,URL权重,标头大小等。
使用GoReplay,您可以以更高或更低的速度重播记录的流量,确保重播的请求完全相同,以相同的顺序甚至在相同的TCP会话中来进行,因此可以说GoReplay是最简单,最准确的负载测试工具。
GoReplay性能和集群功能使您可以垂直和水平扩展它,以便对任何复杂性进行高效,准确的负载测试。
学到更多
监测与分析
即使您的应用程序不支持监视或审核,您也可以使GoReplay记录所有流量,而无需修改应用程序,并将其存储在纯文件中或重定向到诸如ElasticSearch,Kafka或S3之类的源以进行进一步分析。
GoReplay可以用可以用任何语言编写的插件扩展,并允许您动态地访问和修改原始请求,响应和重播的Respose数据,以实现复杂的重写和监视逻辑,使其成为瑞士军刀,用于测试和监控网络应用。
功能仅受您的想象力限制:
- -存储生产流量的最新快照以创建可重复的测试用例
- -记录数据以进行审核,并动态剥离敏感数据
- -通过statsd,ELK,prometheus代理或类似工具公开实时应用指标
- -监控应用程序的性能和运行状况
原文:https://goreplay.org/#detailed
本文:
讨论:请加入知识星球或者微信圈子【首席架构师圈】
- 42 次浏览
【首席架构师推荐】web测试工具列表
这是一个Web测试工具列表,提供了关于特性的一般概述,有时用于Web抓取。
主要特点
Web测试工具可以根据用户测试Web应用程序的不同先决条件(主要是脚本需求、GUI功能和浏览器兼容性)进行分类。
Web testing tools | Web browser based (model) | Scriptable | Scripting Language | Recorder | Multiple domain | Frames |
---|---|---|---|---|---|---|
eggPlant Functional | Yes (IE, Firefox, Safari, Opera, Chrome) |
Yes | SenseTalk | Yes | ||
iMacros | Yes (Firefox, Chrome, IE) |
Yes | iMacro Script | Yes | Yes | Yes |
Katalon Studio | Yes (IE, Firefox, Chrome, Safari, Opera and any modern browser) |
Yes | Groovy | Yes | Yes | Yes |
Maveryx | Yes (IE, Firefox, Chrome, Safari, Opera and any modern browser) |
Yes | C#, Java | No | Yes | |
Ranorex Studio | Yes (Chrome, Firefox, Safari, IE) |
Yes | C#, VB.NET | Yes | Yes | Yes |
Sahi | Yes (IE, Firefox, Chrome, Safari, Opera and any modern browser) |
Yes | Sahi Script | Yes | Yes | Yes |
Selenium | Yes (IE, Firefox, Chrome, Safari, Opera, Edge) |
Yes | Ruby, Java, NodeJS, PHP, Perl, Python, C#, Groovy | Firefox and Chrome | Yes | Yes |
SOAtest | Yes | Yes | Python, JavaScript, Java | Yes | Yes | Yes |
TestComplete | Yes (IE, Firefox, Chrome) |
Yes | VBScript, JScript, C++Script, C#Script, DelphiScript | Yes | Yes | Yes |
Test Studio | Yes (Chrome, Firefox, Safari, IE) |
Yes | C#, VB.NET | Yes | Yes | Yes |
Tricentis Tosca[1] | Yes (Chrome, Firefox, IE, Edge) |
Yes | C#, VB.Net | Yes | Yes | Yes |
WatiN | Yes (IE, Firefox) |
Yes | C#, ability to run JavaScript from C# calls | IE/FF | Yes | |
Watir | Yes (IE, Firefox, Chrome, Safari, Opera, Edge) |
Yes | Ruby | No | Yes | Yes |
HP-UFT | Yes (IE, Firefox, Chrome, Safari, Opera, Edge) |
Yes | VBScript | Yes | Yes | Yes |
See also[edit]
原文:https://en.wikipedia.org/wiki/List_of_web_testing_tools
本文:https://pub.intelligentx.net/node/756
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 36 次浏览
【首席架构师推荐】一系列令人敬畏的渗透测试资源,工具和其他的东西
Awesome Penetration Testing
A collection of awesome penetration testing resources.
Penetration testing is the practice of launching authorized, simulated attacks against computer systems and their physical infrastructure to expose potential security weaknesses and vulnerabilities.
Your contributions and suggestions are heartily♥ welcome. (✿◕‿◕). Please check the Contributing Guidelines for more details. This work is licensed under a Creative Commons Attribution 4.0 International License.
This project is supported by Netsparker Web Application Security Scanner
Contents
- Anonymity Tools
- Anti-virus Evasion Tools
- Books
- CTF Tools
- Collaboration Tools
- Conferences and Events
- Docker Containers
- File Format Analysis Tools
- GNU/Linux Utilities
- Hash Cracking Tools
- Hex Editors
- Industrial Control and SCADA Systems
- Multi-paradigm Frameworks
- Network Tools
- Network Vulnerability Scanners
- OSINT Tools
- Online Resources
- Online Code Samples and Examples
- Online Exploit Development Resources
- Online Lock Picking Resources
- Online Open Sources Intelligence (OSINT) Resources
- Online Operating Systems Resources
- Online Penetration Testing Resources
- Online Social Engineering Resources
- Other Lists Online
- Penetration Testing Report Templates
- Operating System Distributions
- Periodicals
- Physical Access Tools
- Reverse Engineering Tools
- Security Education Courses
- Side-channel Tools
- Social Engineering Tools
- Static Analyzers
- Vulnerability Databases
- Web Exploitation
- Android Utilities
- Windows Utilities
- macOS Utilities
Anonymity Tools
- I2P - The Invisible Internet Project.
- Nipe - Script to redirect all traffic from the machine to the Tor network.
- OnionScan - Tool for investigating the Dark Web by finding operational security issues introduced by Tor hidden service operators.
- Tor - Free software and onion routed overlay network that helps you defend against traffic analysis.
- What Every Browser Knows About You - Comprehensive detection page to test your own Web browser's configuration for privacy and identity leaks.
- dos-over-tor - Proof of concept denial of service over Tor stress test tool.
- kalitorify - Transparent proxy through Tor for Kali Linux OS.
Anti-virus Evasion Tools
- AntiVirus Evasion Tool (AVET) - Post-process exploits containing executable files targeted for Windows machines to avoid being recognized by antivirus software.
- CarbonCopy - Tool that creates a spoofed certificate of any online website and signs an Executable for AV evasion.
- Hyperion - Runtime encryptor for 32-bit portable executables ("PE
.exe
s"). - Shellter - Dynamic shellcode injection tool, and the first truly dynamic PE infector ever created.
- UniByAv - Simple obfuscator that takes raw shellcode and generates Anti-Virus friendly executables by using a brute-forcable, 32-bit XOR key.
- Veil - Generate metasploit payloads that bypass common anti-virus solutions.
- peCloak.py - Automates the process of hiding a malicious Windows executable from antivirus (AV) detection.
- peCloakCapstone - Multi-platform fork of the peCloak.py automated malware antivirus evasion tool.
- shellsploit - Generates custom shellcode, backdoors, injectors, optionally obfuscates every byte via encoders.
Books
See also DEF CON Suggested Reading.
Defensive Programming Books
Hacker's Handbook Series Books
- Android Hacker's Handbook by Joshua J. Drake et al., 2014
- Car Hacker's Handbook by Craig Smith, 2016
- The Browser Hacker's Handbook by Wade Alcorn et al., 2014
- The Database Hacker's Handbook, David Litchfield et al., 2005
- The Mac Hacker's Handbook by Charlie Miller & Dino Dai Zovi, 2009
- The Mobile Application Hacker's Handbook by Dominic Chell et al., 2015
- The Shellcoder's Handbook by Chris Anley et al., 2007
- The Web Application Hacker's Handbook by D. Stuttard, M. Pinto, 2011
- iOS Hacker's Handbook by Charlie Miller et al., 2012
Lock Picking Books
- Eddie the Wire books
- Keys to the Kingdom by Deviant Ollam, 2012
- Lock Picking: Detail Overkill by Solomon
- Practical Lock Picking by Deviant Ollam, 2012
Malware Analysis Books
- Malware Analyst's Cookbook and DVD by Michael Hale Ligh et al., 2010
- Practical Malware Analysis by Michael Sikorski & Andrew Honig, 2012
- The Art of Memory Forensics by Michael Hale Ligh et al., 2014
Network Analysis Books
- Network Forensics: Tracking Hackers through Cyberspace by Sherri Davidoff & Jonathan Ham, 2012
- Nmap Network Scanning by Gordon Fyodor Lyon, 2009
- Practical Packet Analysis by Chris Sanders, 2011
- Wireshark Network Analysis by by Laura Chappell & Gerald Combs, 2012
Penetration Testing Books
- Advanced Penetration Testing by Wil Allsopp, 2017
- Advanced Penetration Testing for Highly-Secured Environments by Lee Allen, 2012
- Advanced Persistent Threat Hacking: The Art and Science of Hacking Any Organization by Tyler Wrightson, 2014
- Black Hat Python: Python Programming for Hackers and Pentesters by Justin Seitz, 2014
- Btfm: Blue Team Field Manual by Alan J White & Ben Clark, 2017
- Bug Hunter's Diary by Tobias Klein, 2011
- Fuzzing: Brute Force Vulnerability Discovery by Michael Sutton et al., 2007
- Metasploit: The Penetration Tester's Guide by David Kennedy et al., 2011
- Penetration Testing: A Hands-On Introduction to Hacking by Georgia Weidman, 2014
- Penetration Testing: Procedures & Methodologies by EC-Council, 2010
- Professional Penetration Testing by Thomas Wilhelm, 2013
- Rtfm: Red Team Field Manual by Ben Clark, 2014
- The Art of Exploitation by Jon Erickson, 2008
- The Basics of Hacking and Penetration Testing by Patrick Engebretson, 2013
- The Hacker Playbook by Peter Kim, 2014
- Unauthorised Access: Physical Penetration Testing For IT Security Teams by Wil Allsopp, 2010
- Violent Python by TJ O'Connor, 2012
Reverse Engineering Books
- Gray Hat Hacking The Ethical Hacker's Handbook by Daniel Regalado et al., 2015
- Hacking the Xbox by Andrew Huang, 2003
- Practical Reverse Engineering by Bruce Dang et al., 2014
- Reverse Engineering for Beginners by Dennis Yurichev
- The IDA Pro Book by Chris Eagle, 2011
Social Engineering Books
- Ghost in the Wires by Kevin D. Mitnick & William L. Simon, 2011
- No Tech Hacking by Johnny Long & Jack Wiles, 2008
- Social Engineering in IT Security: Tools, Tactics, and Techniques by Sharon Conheady, 2014
- The Art of Deception by Kevin D. Mitnick & William L. Simon, 2002
- The Art of Intrusion by Kevin D. Mitnick & William L. Simon, 2005
- Unmasking the Social Engineer: The Human Element of Security by Christopher Hadnagy, 2014
Windows Books
- Troubleshooting with the Windows Sysinternals Tools by Mark Russinovich & Aaron Margosis, 2016
- Windows Internals by Mark Russinovich et al., 2012
CTF Tools
- Pwntools - Rapid exploit development framework built for use in CTFs.
- RsaCtfTool - Decrypt data enciphered using weak RSA keys, and recover private keys from public keys using a variety of automated attacks.
- ctf-tools - Collection of setup scripts to install various security research tools easily and quickly deployable to new machines.
- shellpop - Easily generate sophisticated reverse or bind shell commands to help you save time during penetration tests.
Collaboration Tools
- RedELK - Track and alarm about Blue Team activities while providing better usability in long term offensive operations.
Conferences and Events
- 44Con - Annual Security Conference held in London.
- AppSecUSA - Annual conference organized by OWASP.
- BSides - Framework for organising and holding security conferences.
- BalCCon - Balkan Computer Congress, annually held in Novi Sad, Serbia.
- Black Hat - Annual security conference in Las Vegas.
- BruCON - Annual security conference in Belgium.
- CCC - Annual meeting of the international hacker scene in Germany.
- CHCon - Christchurch Hacker Con, Only South Island of New Zealand hacker con.
- CarolinaCon - Infosec conference, held annually in North Carolina.
- DEF CON - Annual hacker convention in Las Vegas.
- DeepSec - Security Conference in Vienna, Austria.
- DefCamp - Largest Security Conference in Eastern Europe, held annually in Bucharest, Romania.
- DerbyCon - Annual hacker conference based in Louisville.
- Ekoparty - Largest Security Conference in Latin America, held annually in Buenos Aires, Argentina.
- FSec - FSec - Croatian Information Security Gathering in Varaždin, Croatia.
- HITB - Deep-knowledge security conference held in Malaysia and The Netherlands.
- Hack.lu - Annual conference held in Luxembourg.
- Hackfest - Largest hacking conference in Canada.
- Infosecurity Europe - Europe's number one information security event, held in London, UK.
- LayerOne - Annual US security conference held every spring in Los Angeles.
- Nullcon - Annual conference in Delhi and Goa, India.
- PhreakNIC - Technology conference held annually in middle Tennessee.
- RSA Conference USA - Annual security conference in San Francisco, California, USA.
- SECUINSIDE - Security Conference in Seoul.
- ShmooCon - Annual US East coast hacker convention.
- SkyDogCon - Technology conference in Nashville.
- SummerCon - One of the oldest hacker conventions, held during Summer.
- Swiss Cyber Storm - Annual security conference in Lucerne, Switzerland.
- ThotCon - Annual US hacker conference held in Chicago.
- Troopers - Annual international IT Security event with workshops held in Heidelberg, Germany.
- Virus Bulletin Conference - Annual conference going to be held in Denver, USA for 2016.
Docker Containers
Docker Containers of Intentionally Vulnerable Systems
- Damn Vulnerable Web Application (DVWA) -
docker pull citizenstig/dvwa
. - OWASP Juice Shop -
docker pull bkimminich/juice-shop
. - OWASP Mutillidae II Web Pen-Test Practice Application -
docker pull citizenstig/nowasp
. - OWASP NodeGoat -
docker-compose build && docker-compose up
. - OWASP Security Shepherd -
docker pull ismisepaul/securityshepherd
. - OWASP WebGoat Project 7.1 docker image -
docker pull webgoat/webgoat-7.1
. - OWASP WebGoat Project 8.0 docker image -
docker pull webgoat/webgoat-8.0
. - Vulnerability as a service: Heartbleed -
docker pull hmlio/vaas-cve-2014-0160
. - Vulnerability as a service: SambaCry -
docker pull vulnerables/cve-2017-7494
. - Vulnerability as a service: Shellshock -
docker pull hmlio/vaas-cve-2014-6271
. - Vulnerable WordPress Installation -
docker pull wpscanteam/vulnerablewordpress
.
Docker Containers of Penetration Testing Distributions and Tools
- Docker Bench for Security -
docker pull diogomonica/docker-bench-security
. - Official Kali Linux -
docker pull kalilinux/kali-linux-docker
. - Official OWASP ZAP -
docker pull owasp/zap2docker-stable
. - Official WPScan -
docker pull wpscanteam/wpscan
. - Security Ninjas -
docker pull opendns/security-ninjas
. - docker-metasploit -
docker pull phocean/msf
.
File Format Analysis Tools
- Hachoir - Python library to view and edit a binary stream as tree of fields and tools for metadata extraction.
- Kaitai Struct - File formats and network protocols dissection language and web IDE, generating parsers in C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby.
- Veles - Binary data visualization and analysis tool.
GNU/Linux Utilities
- Hwacha - Post-exploitation tool to quickly execute payloads via SSH on one or more Linux systems simultaneously.
- LinEnum - Scripted local Linux enumeration and privilege escalation checker useful for auditing a host and during CTF gaming.
- Linux Exploit Suggester - Heuristic reporting on potentially viable exploits for a given GNU/Linux system.
- Lynis - Auditing tool for UNIX-based systems.
- checksec.sh - Shell script designed to test what standard Linux OS and PaX security features are being used.
- unix-privesc-check - Shell script to check for simple privilege escalation vectors on UNIX systems.
Hash Cracking Tools
- BruteForce Wallet - Find the password of an encrypted wallet file (i.e.
wallet.dat
). - CeWL - Generates custom wordlists by spidering a target's website and collecting unique words.
- Hashcat - The more fast hash cracker.
- JWT Cracker - Simple HS256 JSON Web Token (JWT) token brute force cracker.
- John the Ripper - Fast password cracker.
- Rar Crack - RAR bruteforce cracker.
- StegCracker - Steganography brute-force utility to uncover hidden data inside files.
Hex Editors
- 0xED - Native macOS hex editor that supports plug-ins to display custom data types.
- Bless - High quality, full featured, cross-platform graphical hex editor written in Gtk#.
- Frhed - Binary file editor for Windows.
- Hex Fiend - Fast, open source, hex editor for macOS with support for viewing binary diffs.
- HexEdit.js - Browser-based hex editing.
- Hexinator - World's finest (proprietary, commercial) Hex Editor.
- hexedit - Simple, fast, console-based hex editor.
- wxHexEditor - Free GUI hex editor for GNU/Linux, macOS, and Windows.
Industrial Control and SCADA Systems
See also awesome-industrial-control-system-security.
- Industrial Exploitation Framework (ISF) - Metasploit-like exploit framework based on routersploit designed to target Industrial Control Systems (ICS), SCADA devices, PLC firmware, and more.
- s7scan - Scanner for enumerating Siemens S7 PLCs on a TCP/IP or LLC network.
Multi-paradigm Frameworks
- Armitage - Java-based GUI front-end for the Metasploit Framework.
- AutoSploit - Automated mass exploiter, which collects target by employing the Shodan.io API and programmatically chooses Metasploit exploit modules based on the Shodan query.
- Decker - Penetration testing orchestration and automation framework, which allows writing declarative, reusable configurations capable of ingesting variables and using outputs of tools it has run as inputs to others.
- Faraday - Multiuser integrated pentesting environment for red teams performing cooperative penetration tests, security audits, and risk assessments.
- Metasploit - Software for offensive security teams to help verify vulnerabilities and manage security assessments.
- Pupy - Cross-platform (Windows, Linux, macOS, Android) remote administration and post-exploitation tool.
Network Tools
- CrackMapExec - Swiss army knife for pentesting networks.
- IKEForce - Command line IPSEC VPN brute forcing tool for Linux that allows group name/ID enumeration and XAUTH brute forcing capabilities.
- Intercepter-NG - Multifunctional network toolkit.
- Legion - Graphical semi-automated discovery and reconnaissance framework based on Python 3 and forked from SPARTA.
- Network-Tools.com - Website offering an interface to numerous basic network utilities like
ping
,traceroute
,whois
, and more. - Praeda - Automated multi-function printer data harvester for gathering usable data during security assessments.
- Printer Exploitation Toolkit (PRET) - Tool for printer security testing capable of IP and USB connectivity, fuzzing, and exploitation of PostScript, PJL, and PCL printer language features.
- SPARTA - Graphical interface offering scriptable, configurable access to existing network infrastructure scanning and enumeration tools.
- THC Hydra - Online password cracking tool with built-in support for many network protocols, including HTTP, SMB, FTP, telnet, ICQ, MySQL, LDAP, IMAP, VNC, and more.
- Zarp - Network attack tool centered around the exploitation of local networks.
- dnstwist - Domain name permutation engine for detecting typo squatting, phishing and corporate espionage.
- dsniff - Collection of tools for network auditing and pentesting.
- impacket - Collection of Python classes for working with network protocols.
- routersploit - Open source exploitation framework similar to Metasploit but dedicated to embedded devices.
- rshijack - TCP connection hijacker, Rust rewrite of
shijack
.
DDoS Tools
- Anevicon - Powerful UDP-based load generator, written in Rust.
- HOIC - Updated version of Low Orbit Ion Cannon, has 'boosters' to get around common counter measures.
- JS LOIC - JavaScript in-browser version of LOIC.
- LOIC - Open source network stress tool for Windows.
- Memcrashed - DDoS attack tool for sending forged UDP packets to vulnerable Memcached servers obtained using Shodan API.
- SlowLoris - DoS tool that uses low bandwidth on the attacking side.
- T50 - Faster network stress tool.
- UFONet - Abuses OSI layer 7 HTTP to create/manage 'zombies' and to conduct different attacks using;
GET
/POST
, multithreading, proxies, origin spoofing methods, cache evasion techniques, etc.
Exfiltration Tools
- Cloakify - Textual steganography toolkit that converts any filetype into lists of everyday strings.
- DET - Proof of concept to perform data exfiltration using either single or multiple channel(s) at the same time.
- Iodine - Tunnel IPv4 data through a DNS server; useful for exfiltration from networks where Internet access is firewalled, but DNS queries are allowed.
- TrevorC2 - Client/server tool for masking command and control and data exfiltration through a normally browsable website, not typical HTTP POST requests.
- pwnat - Punches holes in firewalls and NATs.
- tgcd - Simple Unix network utility to extend the accessibility of TCP/IP based network services beyond firewalls.
Network Reconnaissance Tools
- ACLight - Script for advanced discovery of sensitive Privileged Accounts - includes Shadow Admins.
- CloudFail - Unmask server IP addresses hidden behind Cloudflare by searching old database records and detecting misconfigured DNS.
- DNSDumpster - Online DNS recon and search service.
- Mass Scan - TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
- ScanCannon - Python script to quickly enumerate large networks by calling
masscan
to quickly identify open ports and thennmap
to gain details on the systems/services on those ports. - XRay - Network (sub)domain discovery and reconnaissance automation tool.
- dnsenum - Perl script that enumerates DNS information from a domain, attempts zone transfers, performs a brute force dictionary style attack, and then performs reverse look-ups on the results.
- dnsmap - Passive DNS network mapper.
- dnsrecon - DNS enumeration script.
- dnstracer - Determines where a given DNS server gets its information from, and follows the chain of DNS servers.
- fierce - Python3 port of the original
fierce.pl
DNS reconnaissance tool for locating non-contiguous IP space. - nmap - Free security scanner for network exploration & security audits.
- passivedns-client - Library and query tool for querying several passive DNS providers.
- passivedns - Network sniffer that logs all DNS server replies for use in a passive DNS setup.
- scanless - Utility for using websites to perform port scans on your behalf so as not to reveal your own IP.
- smbmap - Handy SMB enumeration tool.
- zmap - Open source network scanner that enables researchers to easily perform Internet-wide network studies.
Protocol Analyzers and Sniffers
- Debookee - Simple and powerful network traffic analyzer for macOS.
- Dripcap - Caffeinated packet analyzer.
- Dshell - Network forensic analysis framework.
- Netzob - Reverse engineering, traffic generation and fuzzing of communication protocols.
- Wireshark - Widely-used graphical, cross-platform network protocol analyzer.
- netsniff-ng - Swiss army knife for for network sniffing.
- sniffglue - Secure multithreaded packet sniffer.
- tcpdump/libpcap - Common packet analyzer that runs under the command line.
Network Traffic Replay and Editing Tools
- TraceWrangler - Network capture file toolkit that can edit and merge
pcap
orpcapng
files with batch editing features. - WireEdit - Full stack WYSIWYG pcap editor (requires a free license to edit packets).
- bittwist - Simple yet powerful libpcap-based Ethernet packet generator useful in simulating networking traffic or scenario, testing firewall, IDS, and IPS, and troubleshooting various network problems.
- hping3 - Network tool able to send custom TCP/IP packets.
- pig - GNU/Linux packet crafting tool.
- scapy - Python-based interactive packet manipulation program and library.
- tcpreplay - Suite of free Open Source utilities for editing and replaying previously captured network traffic.
Proxies and Machine-in-the-Middle (MITM) Tools
- BetterCAP - Modular, portable and easily extensible MITM framework.
- Ettercap - Comprehensive, mature suite for machine-in-the-middle attacks.
- Habu - Python utility implementing a variety of network attacks, such as ARP poisoning, DHCP starvation, and more.
- Lambda-Proxy - Utility for testing SQL Injection vulnerabilities on AWS Lambda serverless functions.
- MITMf - Framework for Man-In-The-Middle attacks.
- Morpheus - Automated ettercap TCP/IP Hijacking tool.
- SSH MITM - Intercept SSH connections with a proxy; all plaintext passwords and sessions are logged to disk.
- dnschef - Highly configurable DNS proxy for pentesters.
- evilgrade - Modular framework to take advantage of poor upgrade implementations by injecting fake updates.
- mallory - HTTP/HTTPS proxy over SSH.
- mitmproxy - Interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
- oregano - Python module that runs as a machine-in-the-middle (MITM) accepting Tor client requests.
- sylkie - Command line tool and library for testing networks for common address spoofing security vulnerabilities in IPv6 networks using the Neighbor Discovery Protocol.
Transport Layer Security Tools
- SSLyze - Fast and comprehensive TLS/SSL configuration analyzer to help identify security mis-configurations.
- crackpkcs12 - Multithreaded program to crack PKCS#12 files (
.p12
and.pfx
extensions), such as TLS/SSL certificates. - testssl.sh - Command line tool which checks a server's service on any port for the support of TLS/SSL ciphers, protocols as well as some cryptographic flaws.
- tls_prober - Fingerprint a server's SSL/TLS implementation.
Wireless Network Tools
- Aircrack-ng - Set of tools for auditing wireless networks.
- Airgeddon - Multi-use bash script for Linux systems to audit wireless networks.
- BoopSuite - Suite of tools written in Python for wireless auditing.
- Bully - Implementation of the WPS brute force attack, written in C.
- Cowpatty - Brute-force dictionary attack against WPA-PSK.
- Fluxion - Suite of automated social engineering based WPA attacks.
- KRACK Detector - Detect and prevent KRACK attacks in your network.
- Kismet - Wireless network detector, sniffer, and IDS.
- Reaver - Brute force attack against WiFi Protected Setup.
- WiFi-Pumpkin - Framework for rogue Wi-Fi access point attack.
- Wifite - Automated wireless attack tool.
- infernal-twin - Automated wireless hacking tool.
- krackattacks-scripts - WPA2 Krack attack scripts.
- wifi-arsenal - Resources for Wi-Fi Pentesting.
Network Vulnerability Scanners
- celerystalk - Asynchronous enumeration and vulnerability scanner that "runs all the tools on all the hosts" in a configurable manner.
- Nessus - Commercial vulnerability management, configuration, and compliance assessment platform, sold by Tenable.
- Netsparker Application Security Scanner - Application security scanner to automatically find security flaws.
- Nexpose - Commercial vulnerability and risk management assessment engine that integrates with Metasploit, sold by Rapid7.
- OpenVAS - Free software implementation of the popular Nessus vulnerability assessment system.
- Vuls - Agentless vulnerability scanner for GNU/Linux and FreeBSD, written in Go.
Web Vulnerability Scanners
- ACSTIS - Automated client-side template injection (sandbox escape/bypass) detection for AngularJS.
- Arachni - Scriptable framework for evaluating the security of web applications.
- JCS - Joomla Vulnerability Component Scanner with automatic database updater from exploitdb and packetstorm.
- Netsparker Application Security Scanner - Application security scanner to automatically find security flaws.
- Nikto - Noisy but fast black box web server and web application vulnerability scanner.
- SQLmate - Friend of
sqlmap
that identifies SQLi vulnerabilities based on a given dork and (optional) website. - SecApps - In-browser web application security testing suite.
- WPScan - Black box WordPress vulnerability scanner.
- Wapiti - Black box web application vulnerability scanner with built-in fuzzer.
- WebReaver - Commercial, graphical web application vulnerability scanner designed for macOS.
- cms-explorer - Reveal the specific modules, plugins, components and themes that various websites powered by content management systems are running.
- joomscan - Joomla vulnerability scanner.
- w3af - Web application attack and audit framework.
OSINT Tools
- AQUATONE - Subdomain discovery tool utilizing various open sources producing a report that can be used as input to other tools.
- BinGoo - GNU/Linux bash based Bing and Google Dorking Tool.
- Censys - Collects data on hosts and websites through daily ZMap and ZGrab scans.
- DataSploit - OSINT visualizer utilizing Shodan, Censys, Clearbit, EmailHunter, FullContact, and Zoomeye behind the scenes.
- dorkbot - Command-line tool to scan Google (or other) search results for vulnerabilities.
- FOCA (Fingerprinting Organizations with Collected Archives) - Automated document harvester that searches Google, Bing, and DuckDuckGo to find and extrapolate internal company organizational structures.
- GooDork - Command line Google dorking tool.
- Google Hacking Database - Database of Google dorks; can be used for recon.
- GyoiThon - GyoiThon is an Intelligence Gathering tool using Machine Learning.
- Hunter.io - Data broker providing a Web search interface for discovering the email addresses and other organizational details of a company.
- Intrigue - Automated OSINT & Attack Surface discovery framework with powerful API, UI and CLI.
- Maltego - Proprietary software for open source intelligence and forensics, from Paterva.
- OWASP Amass - Subdomain enumeration via scraping, web archives, brute forcing, permutations, reverse DNS sweeping, TLS certificates, passive DNS data sources, etc.
- PacketTotal - Simple, free, high-quality packet capture file analysis facilitating the quick detection of network-borne malware (using Bro and Suricata IDS signatures under the hood).
- Shodan - World's first search engine for Internet-connected devices.
- SimplyEmail - Email recon made fast and easy.
- Sn1per - Automated Pentest Recon Scanner.
- Spiderfoot - Multi-source OSINT automation tool with a Web UI and report visualizations.
- Threat Crowd - Search engine for threats.
- Virus Total - Free service that analyzes suspicious files and URLs and facilitates the quick detection of viruses, worms, trojans, and all kinds of malware.
- ZoomEye - Search engine for cyberspace that lets the user find specific network components.
- creepy - Geolocation OSINT tool.
- dork-cli - Command line Google dork tool.
- dorks - Google hack database automation tool.
- fast-recon - Perform Google dorks against a domain.
- gOSINT - OSINT tool with multiple modules and a telegram scraper.
- github-dorks - CLI tool to scan GitHub repos/organizations for potential sensitive information leaks.
- image-match - Quickly search over billions of images.
- metagoofil - Metadata harvester.
- pagodo - Automate Google Hacking Database scraping.
- recon-ng - Full-featured Web Reconnaissance framework written in Python.
- sn0int - Semi-automatic OSINT framework and package manager.
- snitch - Information gathering via dorks.
- surfraw - Fast UNIX command line interface to a variety of popular WWW search engines.
- theHarvester - E-mail, subdomain and people names harvester.
- vcsmap - Plugin-based tool to scan public version control systems for sensitive information.
- WhatBreach - Search email addresses and discover all known breaches that this email has been seen in, and download the breached database if it is publicly available.
Online Resources
Online Code Samples and Examples
- goHackTools - Hacker tools on Go (Golang).
Online Exploit Development Resources
- Exploit Writing Tutorials - Tutorials on how to develop exploits.
- Shellcode Examples - Shellcodes database.
- Shellcode Tutorial - Tutorial on how to write shellcode.
Online Lock Picking Resources
- /r/lockpicking - Resources for learning lockpicking, equipment recommendations.
- Schuyler Towne channel - Lockpicking videos and security talks.
- bosnianbill - Instructional lockpicking videos made by an expert.
Online Open Sources Intelligence (OSINT) Resources
- CertGraph - Crawls a domain's SSL/TLS certificates for its certificate alternative names.
- GhostProject - Searchable database of billions of cleartext passwords, partially visible for free.
- Intel Techniques - Collection of OSINT tools. Menu on the left can be used to navigate through the categories.
- NetBootcamp OSINT Tools - Collection of OSINT links and custom Web interfaces to other services.
- OSINT Framework - Collection of various OSINT tools broken out by category.
- WiGLE.net - Information about wireless networks world-wide, with user-friendly desktop and web applications.
Online Operating Systems Resources
- DistroWatch.com's Security Category - Website dedicated to talking about, reviewing, and keeping up to date with open source operating systems.
Online Penetration Testing Resources
- InfoSec Institute - IT and security articles.
- MITRE's Adversarial Tactics, Techniques & Common Knowledge (ATT&CK) - Curated knowledge base and model for cyber adversary behavior.
- Metasploit Unleashed - Free Offensive Security Metasploit course.
- Open Web Application Security Project (OWASP) - Worldwide not-for-profit charitable organization focused on improving the security of especially Web-based and Application-layer software.
- PENTEST-WIKI - Free online security knowledge library for pentesters and researchers.
- Penetration Testing Execution Standard (PTES) - Documentation designed to provide a common language and scope for performing and reporting the results of a penetration test.
- Penetration Testing Framework (PTF) - Outline for performing penetration tests compiled as a general framework usable by vulnerability analysts and penetration testers alike.
- XSS-Payloads - Resource dedicated to all things XSS (cross-site), including payloads, tools, games, and documentation.
Social Engineering Resources
- Social Engineering Framework - Information resource for social engineers.
Other Lists Online
- .NET Programming - Software framework for Microsoft Windows platform development.
- Android Exploits - Guide on Android Exploitation and Hacks.
- Android Security - Collection of Android security related resources.
- AppSec - Resources for learning about application security.
- Awesome Awesomness - The List of the Lists.
- Awesome Lockpicking - Awesome guides, tools, and other resources about the security and compromise of locks, safes, and keys.
- Awesome Shodan Queries - Awesome list of useful, funny, and depressing search queries for Shodan.
- Blue Team - Awesome resources, tools, and other shiny things for cybersecurity blue teams.
- C/C++ Programming - One of the main language for open source security tools.
- CTFs - Capture The Flag frameworks, libraries, etc.
- Forensics - Free (mostly open source) forensic analysis tools and resources.
- Hacking - Tutorials, tools, and resources.
- Honeypots - Honeypots, tools, components, and more.
- InfoSec § Hacking challenges - Comprehensive directory of CTFs, wargames, hacking challenge websites, pentest practice lab exercises, and more.
- Infosec - Information security resources for pentesting, forensics, and more.
- Security-related Operating Systems - List of security related operating systems.
- JavaScript Programming - In-browser development and scripting.
- Kali Linux Tools - List of tools present in Kali Linux.
- Malware Analysis - Tools and resources for analysts.
- Node.js Programming by @sindresorhus - Curated list of delightful Node.js packages and resources.
- OSINT - Awesome OSINT list containing great resources.
- PCAP Tools - Tools for processing network traffic.
- Pentest Cheat Sheets - Awesome Pentest Cheat Sheets.
- Python Programming by @svaksha - General Python programming.
- Python Programming by @vinta - General Python programming.
- Python tools for penetration testers - Lots of pentesting tools are written in Python.
- Ruby Programming by @Sdogruyol - The de-facto language for writing exploits.
- Ruby Programming by @dreikanter - The de-facto language for writing exploits.
- Ruby Programming by @markets - The de-facto language for writing exploits.
- SecLists - Collection of multiple types of lists used during security assessments.
- SecTools - Top 125 Network Security Tools.
- Security Talks - Curated list of security conferences.
- Security - Software, libraries, documents, and other resources.
- Serverless Security - Curated list of awesome serverless security resources such as (e)books, articles, whitepapers, blogs and research papers.
- Shell Scripting - Command line frameworks, toolkits, guides and gizmos.
- YARA - YARA rules, tools, and people.
Penetration Testing Report Templates
- Public Pentesting Reports - Curated list of public penetration test reports released by several consulting firms and academic security groups.
- T&VS Pentesting Report Template - Pentest report template provided by Test and Verification Services, Ltd.
- Web Application Security Assessment Report Template - Sample Web application security assessment reporting template provided by Lucideus.
Operating System Distributions
- Android Tamer - Distribution built for Android security professionals that includes tools required for Android security testing.
- ArchStrike - Arch GNU/Linux repository for security professionals and enthusiasts.
- AttifyOS - GNU/Linux distribution focused on tools useful during Internet of Things (IoT) security assessments.
- BackBox - Ubuntu-based distribution for penetration tests and security assessments.
- BlackArch - Arch GNU/Linux-based distribution for penetration testers and security researchers.
- Buscador - GNU/Linux virtual machine that is pre-configured for online investigators.
- Kali - Rolling Debian-based GNU/Linux distribution designed for penetration testing and digital forensics.
- Network Security Toolkit (NST) - Fedora-based GNU/Linux bootable live Operating System designed to provide easy access to best-of-breed open source network security applications.
- Parrot - Distribution similar to Kali, with support for multiple hardware architectures.
- PentestBox - Open source pre-configured portable penetration testing environment for the Windows Operating System.
- The Pentesters Framework - Distro organized around the Penetration Testing Execution Standard (PTES), providing a curated collection of utilities that omits less frequently used utilities.
Periodicals
- 2600: The Hacker Quarterly - American publication about technology and computer "underground" culture.
- Phrack Magazine - By far the longest running hacker zine.
Physical Access Tools
- AT Commands - Use AT commands over an Android device's USB port to rewrite device firmware, bypass security mechanisms, exfiltrate sensitive information, perform screen unlocks, and inject touch events.
- Bash Bunny - Local exploit delivery tool in the form of a USB thumbdrive in which you write payloads in a DSL called BunnyScript.
- LAN Turtle - Covert "USB Ethernet Adapter" that provides remote access, network intelligence gathering, and MITM capabilities when installed in a local network.
- PCILeech - Uses PCIe hardware devices to read and write from the target system memory via Direct Memory Access (DMA) over PCIe.
- Packet Squirrel - Ethernet multi-tool designed to enable covert remote access, painless packet captures, and secure VPN connections with the flip of a switch.
- Poisontap - Siphons cookies, exposes internal (LAN-side) router and installs web backdoor on locked computers.
- Proxmark3 - RFID/NFC cloning, replay, and spoofing toolkit often used for analyzing and attacking proximity cards/readers, wireless keys/keyfobs, and more.
- USB Rubber Ducky - Customizable keystroke injection attack platform masquerading as a USB thumbdrive.
- WiFi Pineapple - Wireless auditing and penetration testing platform.
Reverse Engineering Tools
See also awesome-reversing.
- Capstone - Lightweight multi-platform, multi-architecture disassembly framework.
- Evan's Debugger - OllyDbg-like debugger for GNU/Linux.
- Frida - Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
- Ghidra - Suite of free software reverse engineering tools developed by NSA's Research Directorate originally exposed in WikiLeaks's "Vault 7" publication and now maintained as open source software.
- Immunity Debugger - Powerful way to write exploits and analyze malware.
- Interactive Disassembler (IDA Pro) - Proprietary multi-processor disassembler and debugger for Windows, GNU/Linux, or macOS; also has a free version, IDA Free.
- Medusa - Open source, cross-platform interactive disassembler.
- OllyDbg - x86 debugger for Windows binaries that emphasizes binary code analysis.
- PyREBox - Python scriptable Reverse Engineering sandbox by Cisco-Talos.
- Radare2 - Open source, crossplatform reverse engineering framework.
- UEFITool - UEFI firmware image viewer and editor.
- Voltron - Extensible debugger UI toolkit written in Python.
- WDK/WinDbg - Windows Driver Kit and WinDbg.
- binwalk - Fast, easy to use tool for analyzing, reverse engineering, and extracting firmware images.
- boxxy - Linkable sandbox explorer.
- dnSpy - Tool to reverse engineer .NET assemblies.
- peda - Python Exploit Development Assistance for GDB.
- plasma - Interactive disassembler for x86/ARM/MIPS. Generates indented pseudo-code with colored syntax code.
- pwndbg - GDB plug-in that eases debugging with GDB, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers, and exploit developers.
- rVMI - Debugger on steroids; inspect userspace processes, kernel drivers, and preboot environments in a single tool.
- x64dbg - Open source x64/x32 debugger for windows.
Security Education Courses
- ARIZONA CYBER WARFARE RANGE - 24x7 live fire exercises for beginners through real world operations; capability for upward progression into the real world of cyber warfare.
- CTF Field Guide - Everything you need to win your next CTF competition.
- Cybrary - Free courses in ethical hacking and advanced penetration testing. Advanced penetration testing courses are based on the book 'Penetration Testing for Highly Secured Environments'.
- European Union Agency for Network and Information Security - ENISA Cyber Security Training material.
- Offensive Security Training - Training from BackTrack/Kali developers.
- Open Security Training - Training material for computer security classes.
- SANS Security Training - Computer Security Training & Certification.
Side-channel Tools
- ChipWhisperer - Complete open-source toolchain for side-channel power analysis and glitching attacks.
Social Engineering Tools
- Beelogger - Tool for generating keylooger.
- Catphish - Tool for phishing and corporate espionage written in Ruby.
- Evilginx2 - Standalone man-in-the-middle attack framework.
- Evilginx - MITM attack framework used for phishing credentials and session cookies from any Web service.
- FiercePhish - Full-fledged phishing framework to manage all phishing engagements.
- Gophish - Open-source phishing framework.
- King Phisher - Phishing campaign toolkit used for creating and managing multiple simultaneous phishing attacks with custom email and server content.
- Modlishka - Flexible and powerful reverse proxy with real-time two-factor authentication.
- ReelPhish - Real-time two-factor phishing tool.
- ShellPhish - Social media site cloner and phishing tool built atop SocialFish.
- Social Engineer Toolkit (SET) - Open source pentesting framework designed for social engineering featuring a number of custom attack vectors to make believable attacks quickly.
- SocialFish - Social media phishing framework that can run on an Android phone or in a Docker container.
- phishery - TLS/SSL enabled Basic Auth credential harvester.
- wifiphisher - Automated phishing attacks against WiFi networks.
Static Analyzers
- Brakeman - Static analysis security vulnerability scanner for Ruby on Rails applications.
- FindBugs - Free software static analyzer to look for bugs in Java code.
- Progpilot - Static security analysis tool for PHP code.
- RegEx-DoS - Analyzes source code for Regular Expressions susceptible to Denial of Service attacks.
- bandit - Security oriented static analyser for Python code.
- cppcheck - Extensible C/C++ static analyzer focused on finding bugs.
- sobelow - Security-focused static analysis for the Phoenix Framework.
- cwe_checker - Suite of tools built atop the Binary Analysis Platform (BAP) to heuristically detect CWEs in compiled binaries and firmware.
Vulnerability Databases
- Bugtraq (BID) - Software security bug identification database compiled from submissions to the SecurityFocus mailing list and other sources, operated by Symantec, Inc.
- CXSecurity - Archive of published CVE and Bugtraq software vulnerabilities cross-referenced with a Google dork database for discovering the listed vulnerability.
- China National Vulnerability Database (CNNVD) - Chinese government-run vulnerability database analoguous to the United States's CVE database hosted by Mitre Corporation.
- Common Vulnerabilities and Exposures (CVE) - Dictionary of common names (i.e., CVE Identifiers) for publicly known security vulnerabilities.
- Distributed Weakness Filing (DWF) - Federated CNA (CVE Number Authority) mirroring MITRE's CVE database and offering additional CVE-equivalent numbers to otherwise out-of-scope vulnerability disclosures.
- Exploit-DB - Non-profit project hosting exploits for software vulnerabilities, provided as a public service by Offensive Security.
- Full-Disclosure - Public, vendor-neutral forum for detailed discussion of vulnerabilities, often publishes details before many other sources.
- HPI-VDB - Aggregator of cross-referenced software vulnerabilities offering free-of-charge API access, provided by the Hasso-Plattner Institute, Potsdam.
- Inj3ct0r - Exploit marketplace and vulnerability information aggregator. (Onion service.)
- Microsoft Security Advisories - Archive of security advisories impacting Microsoft software.
- Microsoft Security Bulletins - Announcements of security issues discovered in Microsoft software, published by the Microsoft Security Response Center (MSRC).
- Mozilla Foundation Security Advisories - Archive of security advisories impacting Mozilla software, including the Firefox Web Browser.
- National Vulnerability Database (NVD) - United States government's National Vulnerability Database provides additional meta-data (CPE, CVSS scoring) of the standard CVE List along with a fine-grained search engine.
- Packet Storm - Compendium of exploits, advisories, tools, and other security-related resources aggregated from across the industry.
- SecuriTeam - Independent source of software vulnerability information.
- US-CERT Vulnerability Notes Database - Summaries, technical details, remediation information, and lists of vendors affected by software vulnerabilities, aggregated by the United States Computer Emergency Response Team (US-CERT).
- Vulnerability Lab - Open forum for security advisories organized by category of exploit target.
- Vulners - Security database of software vulnerabilities.
- Vulmon - Vulnerability search engine with vulnerability intelligence features that conducts full text searches in its database.
- Zero Day Initiative - Bug bounty program with publicly accessible archive of published security advisories, operated by TippingPoint.
Web Exploitation
- BlindElephant - Web application fingerprinter.
- Browser Exploitation Framework (BeEF) - Command and control server for delivering exploits to commandeered Web browsers.
- Burp Suite - Integrated platform for performing security testing of web applications.
- Commix - Automated all-in-one operating system command injection and exploitation tool.
- DVCS Ripper - Rip web accessible (distributed) version control systems: SVN/GIT/HG/BZR.
- EyeWitness - Tool to take screenshots of websites, provide some server header info, and identify default credentials if possible.
- Fiddler - Free cross-platform web debugging proxy with user-friendly companion tools.
- FuzzDB - Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.
- GitTools - Automatically find and download Web-accessible
.git
repositories. - Kadabra - Automatic LFI exploiter and scanner.
- Kadimus - LFI scan and exploit tool.
- NoSQLmap - Automatic NoSQL injection and database takeover tool.
- OWASP Zed Attack Proxy (ZAP) - Feature-rich, scriptable HTTP intercepting proxy and fuzzer for penetration testing web applications.
- Offensive Web Testing Framework (OWTF) - Python-based framework for pentesting Web applications based on the OWASP Testing Guide.
- Raccoon - High performance offensive security tool for reconnaissance and vulnerability scanning.
- SQLmap - Automatic SQL injection and database takeover tool.
- VHostScan - Virtual host scanner that performs reverse lookups, can be used with pivot tools, detect catch-all scenarios, aliases and dynamic default pages.
- WPSploit - Exploit WordPress-powered websites with Metasploit.
- Wappalyzer - Wappalyzer uncovers the technologies used on websites.
- WhatWaf - Detect and bypass web application firewalls and protection systems.
- WhatWeb - Website fingerprinter.
- Wordpress Exploit Framework - Ruby framework for developing and using modules which aid in the penetration testing of WordPress powered websites and systems.
- autochrome - Easy to install a test browser with all the appropriate setting needed for web application testing with native Burp support, from NCCGroup.
- badtouch - Scriptable network authentication cracker.
- fimap - Find, prepare, audit, exploit and even Google automatically for LFI/RFI bugs.
- liffy - LFI exploitation tool.
- recursebuster - Content discovery tool to perform directory and file bruteforcing.
- sslstrip2 - SSLStrip version to defeat HSTS.
- sslstrip - Demonstration of the HTTPS stripping attacks.
- tplmap - Automatic server-side template injection and Web server takeover tool.
- wafw00f - Identifies and fingerprints Web Application Firewall (WAF) products.
- webscreenshot - Simple script to take screenshots of websites from a list of sites.
- weevely3 - Weaponized PHP-based web shell.
Android Utilities
- Android Open Pwn Project (AOPP) - Variant of the Android Open Source Project (AOSP), called Pwnix, is built from the ground up for network hacking and pentesting.
- cSploit - Advanced IT security professional toolkit on Android featuring an integrated Metasploit daemon and MITM capabilities.
- Fing - Network scanning and host enumeration app that performs NetBIOS, UPnP, Bonjour, SNMP, and various other advanced device fingerprinting techniques.
Windows Utilities
- Active Directory and Privilege Escalation (ADAPE) - Umbrella script that automates numerous useful PowerShell modules to discover security misconfigurations and attempt privilege escalation against Active Directory.
- Bloodhound - Graphical Active Directory trust relationship explorer.
- Commando VM - Automated installation of over 140 Windows software packages for penetration testing and red teaming.
- Covenant - ASP.NET Core application that serves as a collaborative command and control platform for red teamers.
- DeathStar - Python script that uses Empire's RESTful API to automate gaining Domain Admin rights in Active Directory environments.
- Empire - Pure PowerShell post-exploitation agent.
- Fibratus - Tool for exploration and tracing of the Windows kernel.
- LaZagne - Credentials recovery project.
- Magic Unicorn - Shellcode generator for numerous attack vectors, including Microsoft Office macros, PowerShell, HTML applications (HTA), or
certutil
(using fake certificates). - MailSniper - Modular tool for searching through email in a Microsoft Exchange environment, gathering the Global Address List from Outlook Web Access (OWA) and Exchange Web Services (EWS), and more.
- PowerSploit - PowerShell Post-Exploitation Framework.
- RID_ENUM - Python script that can enumerate all users from a Windows Domain Controller and crack those user's passwords using brute-force.
- Responder - Link-Local Multicast Name Resolution (LLMNR), NBT-NS, and mDNS poisoner.
- Ruler - Abuses client-side Outlook features to gain a remote shell on a Microsoft Exchange server.
- SCOMDecrypt - Retrieve and decrypt RunAs credentials stored within Microsoft System Center Operations Manager (SCOM) databases.
- Sysinternals Suite - The Sysinternals Troubleshooting Utilities.
- Windows Credentials Editor - Inspect logon sessions and add, change, list, and delete associated credentials, including Kerberos tickets.
- Windows Exploit Suggester - Detects potential missing patches on the target.
- mimikatz - Credentials extraction tool for Windows operating system.
- redsnarf - Post-exploitation tool for retrieving password hashes and credentials from Windows workstations, servers, and domain controllers.
- wePWNise - Generates architecture independent VBA code to be used in Office documents or templates and automates bypassing application control and exploit mitigation software.
macOS Utilities
- Bella - Pure Python post-exploitation data mining and remote administration tool for macOS.
- EvilOSX - Modular RAT that uses numerous evasion and exfiltration techniques out-of-the-box.
原文:
讨论:请加入支持星球或者小红圈【首席架构师圈】
- 259 次浏览
【首席架构师推荐】信息图形软件列表
这是一个软件列表创建任何类型的信息图形:
- 其中包括从提供的数据集创建一个或多个信息图形的能力
- 它要么是专门为信息可视化提供的
Software | Example(s) | Interface | Licence(s) | Latest Release | Operating system | Distinguishing features | |
---|---|---|---|---|---|---|---|
License | Open Source (yes/no) | ||||||
AIDA | LGPL | Yes | October 2003 / 3.2.1 | Open interfaces and formats for particle physics data processing | |||
Algebrator | GUI | Proprietary | No | 2009 / 4.2 |
OS X, Sugar, Windows |
2D graphs | |
Archim | drawing 2D and 3D graphs | freeware | No | 2008 | Windows | Graphs in polar (or other) coordinates become specific cases of parametric graphs. | |
Baudline | GUI | Proprietary | No | July 21, 2010 / 1.08 |
FreeBSD, Linux, Mac OS X, Solaris |
Signal analysis tool | |
D3js | JavaScript library | BSD | Yes | August 25, 2018 / 5.7.0 |
web browsers, js engines |
static and dynamic presentations | |
DADiSP | GUI, command line, SPL script language | Proprietary | No | January 17, 2017 / 6.7 B02 | Windows | Numerical analysis and signal processing with a spreadsheet-like interface | |
DAP | GNU-style copyleft[1] | Yes | April 16, 2014 / 3.10 | Statistics | |||
Datacopia |
Sample charts created through datacopia |
GUI (web based) | Freemium | No |
Windows, Linux, Mac, iOS, Android |
Generates a ranked list of several plots & visualizations based on an analysis of the data provided, allowing the user to choose their favorite graphic, share it, and export it as an image. | |
DataScene | GUI | Shareware | No | March 2011 / 3.0.7 |
Linux, Unix/X11, Windows |
2D & 3D graphing, animated graphs, data analysis, curve fitting, and data monitoring. | |
Descartes (plotting tool) | GUI | GPL | Yes | July 10, 2005 / 0.7 |
Any (Python) |
Inactive as of 2005 | |
EditGrid | GUI (web based) | Any (Web-based application) | Online spreadsheet; service due to end May 1, 2014 | ||||
EJS | GUI | GPL | Yes |
Linux, Mac OS X, Windows |
Creates ODE solving interactive, ready-to-publish Java applets | ||
Epi Info | GPL | Yes | February 2, 2018 / 7.2.2.6 | Windows | Statistics | ||
EViews | Proprietary | No | June 21, 2017 / 10 | Statistics | |||
Fityk | GUI, command line | GPL | Yes | December 19, 2016 / 1.3.1 |
Linux, Mac OS X, Windows |
specialized in curve fitting | |
FlexPro | Proprietary | No | 2017 |
MS Windows only |
|||
FreeMat | GPL[2] | Yes | June 30, 2013 / 4.2 |
Linux, Mac OS X, Windows |
|||
FusionCharts |
Create Interactive Charts and Graphs |
GUI (web based), JavaScript Charting Library | Proprietary | No | November 1, 2016 / 3.11.3 |
All Web Browsers (including IE 6), JS Engines |
Interactive JavaScript Charts for your Web & Mobile applications. Get 90+ chart types and 965 maps, readymade business dashboards and demos. |
GeoGebra | GUI | GPL[3] | Yes | September 3, 2017 / 6.0.385.0 |
Linux, Mac OS X, Sugar, Windows |
Very good for rendering Geometry, Graphs, Statistical Diagrams, (LaTeX) Formula Rendering. All antialiased in PNG Export. Export to SVG, EPS, EMF, PNG, PDF. | |
Gephi | GUI | GPLv3 / CDDL 1.0 | Yes | February 14, 2016 / 0.9.1 |
Linux, Mac OS X, Windows |
Networks and complex systems, dynamic and hierarchical graphs | |
ggplot2 | R | GPL2 | Yes | December 30, 2016 / 2.2.1 |
Cross- platform |
Based on "The Grammar of Graphics" | |
GLE | Command line, GUI | BSD / GPL | Yes | August 18, 2015 / 4.2.5f |
Linux, Mac, Windows |
Graphics scripting language | |
GNU Octave | GUI, command line, C, C++, Fortran | GPL | Yes | August 9, 2018 / 4.4.1 |
Linux, Mac OS X, OS/2, Solaris or Windows |
MATLAB compatible, built-in ODE and DAE solvers, extensive user contributed toolboxes | |
Gnumeric | GUI | GPL[4] | Yes | August 19, 2018 / 1.12.43 | Spreadsheet | ||
Gnuplot | Command line, Python, Ruby, Smalltalk, third-party GUIs | Own license | Yes | June 4, 2018 / 5.2.4 |
Amiga, Atari ST, BeOS, Linux, Mac, MS-DOS, OS/2, OS-9/68k, Ultrix, Windows, VMS |
Built in scripting language | |
Grace | Command line, GUI, various APIs | GPL | Yes | February 14, 2015 / 5.1.25 |
Linux, Mac(X11), Windows (cygwin) |
Uses Motif; fork of Xmgr |
|
GrADS | command line | GPL | Yes | April 25, 2018 / 2.2.1 |
Linux, Mac OS X, Windows, Solaris, IBM AIX, DEC Alpha, IRIX |
Visualization of Earth science data | |
GraphPad Prism | GUI | proprietary | No | October 12, 2016 / 7.0b |
Mac, Windows |
||
Graphviz | DOT language | CPL | Yes | December 25, 2016 / 2.40.1 |
Linux, Mac OS X, Windows |
||
gretl | GUI | GPL | Yes | September 3, 2018 / 2018c |
Linux, Mac, Windows |
Specialized in econometrics and time series analyses, built-in scripting language, interface to gnuplot and R | |
HippoDraw | GPL v2 | Yes | October 2007 / 1.21.3 | C++-based data analysis system | |||
IGOR Pro | GUI | proprietary | No | April 11, 2019 / 8.0.3 |
Mac, Windows |
3D and volume visualization, Curve and peak fitting, Signal processing, Image processing | |
ILNumerics | Math library for .NET / C# | GPL / proprietary | June 11, 2015 / v4.8 |
Windows and Linux |
Math library with rich visualization features (interactive 3D scenes, scientific plotting) and MATLAB-like syntax. |
||
Ipe | GUI, XML | GPL | Yes | December 10, 2016 / 7.2.7 |
Linux, Mac, Windows, OS/X |
IPE Graphics with LaTeX equations or notations can be stored as PDF files (not only exported to PDF) and be included in LaTeX documents. pdftoipe allows any PDF graph to be edited in Ipe. | |
JFreeChart | GUI, Java, Groovy | LGPL | Yes | November 5, 2017 / 1.5.0 | Any (Java) | ||
KChart | GUI | GPL | Yes | March 21, 2017 / 3.0.1 | Linux (KDE) | ||
Kig | GUI | GPL | Yes | Geometry diagrams only | |||
LabPlot | GUI, Qt scripting | GPL | Yes | April 19, 2019 / 2.6.0 |
Linux (KDE), Windows |
data analysis, nonlinear curve fitting in 2D, data picking from images, live data plotting | |
LabVIEW | Proprietary | No | May 2017 / 2017 | Visual circuits modeling | |||
LiSiCA | Python | No |
Windows, Linux |
Ligand-based virtual screening software that searches for 2D and 3D similarities between a reference compound and a database of target compounds. | |||
MagicPlot | GUI | Proprietary | No | September 18, 2016 / 2.7.2 | Any (Java) | Nonlinear fitting, batch processing | |
Maple | GUI, command line | Proprietary | No | May 25, 2017 / 2017 |
Linux, Mac OS X, Windows |
||
MathCad | GUI | Proprietary | No | March 6, 2017 / Prime 4.0, November 2015 / 15.0 M045 | Windows | Simple GUI driven interface | |
Mathematica | GUI, command line, C++ | Proprietary | No | 12.0.0 (April 16, 2019; 5 months ago) [±][5] |
Linux, Mac OS X, Windows, |
Computer algebra, statistics and numerical analysis system with general graphic language. See Wolfram Language. | |
MATLAB | GUI | Proprietary | No | September 20, 2017 / R2017b |
Linux, Mac OS X, Windows |
Matrix system | |
Maxima | GUI, command line | GPL | Yes | October 3, 2017 / 5.41.0 |
BSD, Linux, Mac OS X, Unix Like OS, Windows |
Various graphical user interfaces, Support LaTeX with |
|
MayaVi | GUI, Python, scriptable, embeddable | BSD | Yes | August 3, 2018 / 4.6.2 |
GNU/Linux, Mac OS X, Windows |
Visualises computational grids, scalar/vector/tensor data. Texture & ray-cast mappers. | |
MedCalc | GUI | Proprietary | No | August 17, 2017 / 17.9 | Windows | Statistics | |
Microsoft Excel | GUI | Proprietary | No |
Mac OS X, |
Spreadsheet | ||
NCSS (statistical software) | GUI | Proprietary | No | May 2, 2016 / NCSS 11 | Windows | Statistical Analysis and Statistical Graphics software | |
Nucalc | GUI | proprietary | No |
Mac OS, Mac OS X, Windows |
|||
Numbers (iWork) | GUI | Proprietary | No | March 28, 2017 / 4.1 | Mac OS X | Spreadsheet | |
OpenDX | GUI | Proprietary | No | January 19, 2006 / 4.4.0 |
Cross- platform |
||
OpenOffice.org Calc | GUI | GNU LGPL | Yes | January 25, 2011 / 3.3 | Spreadsheet | ||
OpenPlaG | GUI | GPL | Yes | June 12, 2018 / 3.5 | Any (PHP 5) | graph plotter | |
Orange | GUI, Python scripting | GPL | Yes | September 3, 2017 / 3.5 |
GNU/Linux, Windows, Mac OS X |
A visual programming data-flow software suite with widgets for statistical data analysis, interactive data visualization, data mining, and machine learning. | |
Origin | GUI, COM, C/C++ and scripting | proprietary | No | June 22, 2017 / 2017 SR2 | Windows |
Multi-layer 2D, 3D and statistical graphs for science and engineering. Built-in digitizing tool. Auto-recalculation and reporting. Programmable, with access to NAG Numerical Library. |
|
ParaView | GUI, Python scripting | GPL | Yes | June 19, 2018 / 5.5.2 |
Linux/Unix, Mac OS X, Windows |
Parallel scientific and Computational Fluid Dynamics visualizations | |
PDL | Artistic License / GPL | Yes | May 6, 2018 / 2.019 |
Perl Data Language |
|||
PGPLOT | FORTRAN, C | No | February 26, 2001 / 5.2.2 |
Linux, Mac, Windows |
(Fortran) California Institute of Technology, Inactive as of 2001 | ||
ploticus | Command line, C | GPL | Yes | May 2013 / 2.42 |
Linux, Mac, Windows |
plots and charts from data | |
Plotly | GUI, command line Python | Commercial | No |
Any (web-based) |
plots and charts in browser, web-sharing and exporting, drag-and-drop data import, Python command line | ||
plotutils | command line, C/C++ | GPL | Yes | September 27, 2009 / 2.6 |
Linux, Mac, Windows |
Collection of command line programs, C/C++ API | |
PLplot | Ada, C/C++/D, Fortran 77/90, C, C++, Java, Lisp, Lua, OCaml, Octave, Perl, Python, Tcl/Tk | LGPL | Yes | August 26, 2017 / 5.13.0 |
Linux, Mac, Windows |
Many different output formats: CGM, GIF, Jpeg, Png, Latex, PBM, PDF, Postscript, SVG, XFig, Qt, wxWidgets | |
PSPP | GUI, command line | GPL | Yes | August 20, 2017 / 1.0.0 |
Linux, Mac, Windows |
Statistical analysis of sampled data. Free replacement for SPSS. | |
QtiPlot | GUI, Python | proprietary | No | May 31, 2017 / 0.9.9.11 |
Linux, Mac, Windows |
Python scriptable | |
R | Third party | GPL | Yes | July 2, 2018 / 3.5.1("Feather Spray") |
Linux, Mac, Windows |
In addition to base graphics, has a large number of graphics packages including lattice and ggplot2.[7] Interoperabile with other free software packages. | |
ROOT | GUI, C++, Python, Ruby | LGPL | Yes | August 23, 2018 / 6.14.04 |
Linux, Mac, Windows |
De facto standard in high energy physics | |
RRDtool | Command line | GPL | Yes | May 17, 2017 / 1.7.0 |
Linux, Windows |
||
S | Statistics | ||||||
S-PLUS | Proprietary | No | November 2010 / 8.2 | Statistics | |||
Proprietary | No | July 10, 2013 / 9.4 | Statistics | ||||
SciDAVis | GUI, Python | GPL | Yes | June 4, 2018 / 1.23 |
Linux, Mac, Windows |
Qt4-based GUI, Python scriptable | |
Scilab | CeCILL | Yes | February 15, 2018 / 6.0.1 |
Linux, Mac OS X, Windows |
Matrix system | ||
modules for |
Python, GUI, command line | BSD/matplotlib | Yes | June 21, 2017 / 0.19.1, July 6, 2017 / 1.13.1, May 10, 2017 / 2.0.2 |
FreeBSD, Linux, Mac OS X, Windows |
Extensive numerical and scientific library with MATLAB-style plotting | |
SigmaPlot | GUI | proprietary | No | 2014 / 13.0.0 | Windows | ||
SOCR | Statistics | ||||||
Sonic Visualiser | GUI | GPL | Yes | August 14, 2018 / 3.1.1 | |||
SPSS | GUI, command line | Proprietary | No | August 8, 2017 / 25.0 | Statistics | ||
Stata | Proprietary | No | June 6, 2017 / 15.0 | Statistics | |||
Statgraphics |
Dynamic Response Surface Plot |
GUI | Proprietary | No | July 2015 / 17.1.08 | Windows | Statistical software package for exploratory data analysis, dynamic data visualization, statistical modeling, design of experiments, time series forecasting, quality improvement and Six Sigma. |
May 2, 2011 / 3.81 | |||||||
SymPy | BSD | Yes | September 14, 2018 / 1.3 |
Linux, Mac OS X, Windows |
Python library for computer algebra and symbolic mathematics | ||
Sysquake | GUI, command line | Proprietary | No | November 5, 2013 / 5.0 |
Linux, Mac OS X, Windows |
MATLAB compatible, interactive graphics | |
Systat | Proprietary | No | Statistics | ||||
Tableau | GUI | Proprietary | No | Windows | Spreadsheet | ||
TAChart | Charting library | modified LGPL | Yes | November 13, 2016 / 1.6.2 |
Linux, Mac OS X, Windows |
Very flexible charting component for Lazarus / Free Pascal. | |
Tecplot | GUI | proprietary | No | 2016 / 2016 |
Linux, Mac, UNIX, Windows |
Computational Fluid Dynamics | |
Teechart | Charting library | Open Source | Yes | 2018 |
Windows, macOS, Linux, iOS, Android |
Full set of chart types, maps & gauges, interactive, real-time, PNG, JPEG export, cross-browser support, integration with WordPress, Drupal, Node.js, Joomla, TypeScript, NuGet among others. | |
think-cell chart | GUI | proprietary | No | Windows | Support for waterfall, Marimekko and Gantt charts. Direct integration into Microsoft PowerPoint. | ||
Veusz | GUI, Python, command line | GPL | Yes | July 22, 2018 / 3.0.1 |
Mac, Unix, Windows |
Create publication-quality PS/PDF plots, Python scripting and plugin interface | |
Visifire | Independent of server side scripting | Proprietary | No | June 5, 2014 / 5.1.7-0 | Mac, Windows | ||
VisIt | GUI, C++, Python, and Java | BSD | Yes | May 2018 / 2.13.2 |
Linux, Mac, Windows |
Designed to handle very large data sets | |
Webix | JavaScript library | GPLV3/Proprietary[8] | Yes | June 27, 2017 / 4.4 |
Cross platforms, cross browsers |
JavaScript/HTML5 based; More than 75 widgets and controls; Maps; Charts; DataTables; Organograms; Gauge charts | |
GUI, command line | Proprietary | No | March 2018 / 4.0 |
AIX, Linux, Linux for Arm8 64-bit (AArch64), macOS, PowerLinux, POWER/System p/pSeries (LE), Solaris, Windows, Linux for System z, z/OS |
Statistics. Handles very large data sets. Supports mixing Python, R, SAS and SQL languages within in a single user program | ||
XGraph | GUI, command line | Proprietary | No | April 2014 / v4.30 |
Linux, Windows |
Interactive and batch 2D data file plotting | |
GUI (web based) | Proprietary | No |
Any |
Online spreadsheet |
Vector graphics
Vector graphics software can be used for manual graphing or for editing the output of another program. Please see:
- Category:Vector graphics editors
- Comparison of vector graphics editors
- List of vector graphics editors
A few online editors using vector graphics for specific needs have been created.[citation needed] This kind of creative interfaces work well together with data visualization tools like the ones above.[citation needed]
See also
原文:https://en.wikipedia.org/wiki/List_of_information_graphics_software
本文:https://pub.intelligentx.net/wikipedia-list-information-graphics-software
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 29 次浏览
【首席架构师推荐】小部件工具包列表
本文提供了一组小部件工具包(也称为GUI框架),它们用于构造程序的图形用户界面(GUI),根据程序与各种操作系统的关系进行组织。
Low-level widget toolkits
Integrated in the operating system
- OS X uses Cocoa. Mac OS9 and OS X use Carbon for 32-bit applications.
- The Windows API used in Microsoft Windows. Microsoft had the graphics functions integrated in the kernel until 2006[1]
- The Haiku operating system uses an extended and modernised version of the Be API that was used by its spiritual predecessor BeOS. Haiku Inc. is expected to drop binary and source compatibility with the BeOS at some point in the future, which will result in its own Haiku API.
As a separate layer on top of the operating system
- The X Window System contains primitive building blocks, called Xt or "Intrinsics", but they are mostly only used by older toolkits such as: OLIT, Motif and Xaw. Most contemporary toolkits, such as GTK+ or Qt, bypass them and use Xlib or XCB directly.
- The Amiga OS Intuition was formerly present in the Amiga Kickstart ROM and integrated itself with a medium-high level widget library which invoked the Workbench Amiga native GUI. Since Amiga OS 2.0, Intuition.library became disk based and object oriented. Also Workbench.library and Icon.library became disk based, and could be replaced with similar third-party solutions.
- Since 2005, Microsoft has taken the graphics system out of Windows' kernel.[2]
High-level widget toolkits
Toolkit name | Windows | OS X | Unix-like | Programming language | License |
---|---|---|---|---|---|
Qt | Yes | Yes | Yes | C++ | LGPL, commercial |
MFC | Yes | No | No | C++ | Proprietary |
OWL (superseded by VCL) | Yes | No | No | C++ (Borland C++) | Proprietary |
VCL (supersedes OWL) | Yes | No | No | Object Pascal (Delphi) | Proprietary |
WTL | Yes | No | No | C++ | Microsoft Public License |
LCL | Yes | Yes | Yes | Object Pascal (Free Pascal) | LGPL |
LessTif | No | No | Yes | C | LGPL |
GTK | Yes | Yes | Yes | C | LGPL |
FLTK | Yes | Yes | Yes | C++ | LGPL |
Fox toolkit | Yes | No | Yes | C++ | LGPL |
Nana C++ | Yes | No | Yes | C++ | Boost license |
wxWidgets | Yes | Yes | Yes | C++ | WxWindows license |
TnFOX | Yes | Yes | Yes | C++ | LGPL |
Ultimate++ | Yes | No | Yes | C++ | BSD |
Rogue Wave Views | Yes | No | Yes | C++ | proprietary |
CEGUI | Yes | Yes | Yes | C++ | MIT |
IUP | Yes | No | Yes | C | MIT |
Shoes (GUI toolkit) | cross-platform | Ruby | MIT | ||
AWT | cross-platform | Java | |||
Swing | cross-platform | Java | |||
Pivot (WTK) | cross-platform | Java | Apache License | ||
GNUstep | Yes | Yes | Yes | Objective-C | LGPL |
Juce | Yes | Yes | Yes | C++ | GPL, commercial |
Cocoa | No | Yes | No | Objective-C | Proprietary |
Elementary | Yes | Yes | Yes | C | LGPL, BSD |
Tk | Yes | Yes | Yes | C | BSD |
Kivy | cross-platform | Python | MIT |
OS dependent
On Amiga
- BOOPSI (Basic Object Oriented Programming System for Intuition) was introduced with OS 2.0 and enhanced Intuition with a system of classes in which every class represents a single widget or describes an interface event. This led to an evolution in which third-party developers each realised their own personal systems of classes.
- MUI: object-oriented GUI toolkit and the official toolkit for MorphOS.
- ReAction: object-oriented GUI toolkit and the official toolkit for AmigaOS.
- Zune (GUI toolkit) is an open source clone of MUI and the official toolkit for AROS.
On Macintosh
- Cocoa - used in OS X (see also Aqua).
- MacApp Macintosh framework.
- PowerPlant Macintosh framework.
On Microsoft Windows
- The Microsoft Foundation Classes (MFC), a C++ wrapper around the Windows API.
- The Windows Template Library (WTL), a template-based extension to ATL and a replacement of MFC
- The Object Windows Library, Borland's alternative to MFC.
- The Visual Component Library (VCL) is Borland's toolkit used in its C++ Builder and Delphi products.
- Windows Forms is .NET's set of classes that handle GUI controls. In the cross-platform Mono implementation, it is an independent toolkit, implemented entirely in managed code (not wrapping the Windows API, which doesn't exist on other platforms).[3]
- The Windows Presentation Foundation is the graphical subsystem of the .NET Framework 3.0. User interfaces can be created in WPF using any of the CLR languages (e.g. C#) or with the XML-based language XAML. Microsoft Expression Blend is a visual GUI builder for WPF.
On Unix, under the X Window System
Note that the X Window System was originally primarily for Unix-like operating systems, but it now runs on Microsoft Windows as well using, for example, Cygwin, so some or all of these toolkits can also be used under Windows.
- LessTif, an open source (LGPL) version of Motif.
- MoOLIT, a bridge between the look-and-feel of OPEN LOOK and Motif
- Motif used in the Common Desktop Environment.
- OLIT, an Xt-based OPEN LOOK intrinsics toolkit
- Xaw, the Project Athena widget set for the X Window System.
- XView, a SunView compatible OPEN LOOK toolkit
Cross-platform
Based on C (including bindings to other languages)
- Elementary, open source (LGPL), a part of the Enlightenment Foundation Libraries, a fast, stable, and scalable library that can be used to create both rich and fast applications that can be used on anything from every day desktop computers to small PDA's and set-top boxes.
- GTK+, open source (LGPL), primarily for the X Window System, ported to and emulated under other platforms; used in the GNOME, Rox, LXDE and Xfce desktop environments. The Windows port has support for native widgets.
- IUP, open source (MIT), a minimalist GUI toolkit in ANSI C for Windows, UNIX and Linux.
- Tk, open source (BSD-style), a widget set accessed from Tcl and other high-level script languages (interfaced in Python as Tkinter).
- XForms, the Forms Library for X
- XVT, Extensible Virtual Toolkit
Based on C++ (including bindings to other languages)
- CEGUI, open source (MIT License), cross-platform widget toolkit designed for game development, but also usable for applications and tool development. Supports multiple renderers and optional libraries.
- FLTK, open source (LGPL), cross-platform toolkit designed to be small and fast.
- FOX toolkit, open source (LGPL), cross-platform toolkit.
- GLUI, a very small toolkit written with the GLUT library.
- gtkmm, C++ version of GTK+
- Juce provides GUI and widget set with the same look and feel in Microsoft Windows, X Window Systems, OS X and Android. Rendering can be based on OpenGL.
- Nana C++, open source (Boost license), a cross-platform toolkit designed to enable modern C++ GUI programming
- Qt, commercial and open source (GPL, LGPL) available under Unix and Linux (with X11 or Wayland), MS Windows (Desktop, CE and Phone 8), OS X, iOS, Android, BlackBerry 10 and embedded Linux; used in the KDE, Trinity, LXQt, and Lumina desktop environment, it's also used in Ubuntu's Unity shell.
- Rogue Wave Views (formerly ILOG Views) provides GUI and graphic library for Windows and the main X11 platforms.
- TnFOX, open source (LGPL), a portability toolkit.
- Ultimate++ is a free Win32/X11 application framework bundled with an IDE (BSD license)
- The Visual Component Framework (VCF) is an open source (BSD license) C++ framework project.
- wxWidgets (formerly wxWindows), open source (relaxed LGPL), abstracts toolkits across several platforms for C++, Python, Perl, Ruby and Haskell.
- Zinc Application Framework, cross-platform widget toolkit.
Based on OpenGL
- Clutter (LGPL) (in C) is an open source software library for creating fast, visually rich and animated graphical user interfaces.
Based on Flash
- Adobe Flash allows creating widgets running in most web browsers and in several mobile phones.
- Adobe Flex provides high-level widgets for building web user interfaces. Flash widgets can be used in Flex.
- Flash and Flex widgets will run without a web browser in the Adobe AIR runtime environment.
Based on XML
Based on JavaScript
Main article: JavaScript library
General
- Cappuccino
- jQuery UI
- MooTools
- Qooxdoo Could be understood as Qt for the Web
- Script.aculo.us
- Adobe AIR
- Dojo Toolkit
- Sencha (formerly Ext JS)
- Telerik Kendo UI
- TIBCO General Interface, a rich set of GUI components that include vector charts and is now also available through an open source BSD license[4]
- Webix
- WinJS
- React
Full-stack framework
- Echo3
- SmartClient
- SproutCore
- Telerik UI for ASP/PHP/JSP/Silverlight
- Vaadin - Java
- ZK - A Java Web framework for building rich Ajax and mobile applications
Resource-based
- Google Web Toolkit (GWT)
- Pyjs
- FBML Facebook Markup Language
No longer developed
- Rialto Toolkit
- YUI (Yahoo! User Interface Library)
Based on SVG
- Raphaël is a JavaScript toolkit for SVG interfaces and animations
Based on .NET
- Gtk#, C# wrappers around the underlying GTK+ and GNOME libraries, written in C and available on Linux, MacOS and Windows.
- Windows Forms. There is an original Microsoft's implementation that is a wrapper around the Windows API and runs on windows, and Mono's alternative implementation that is cross platform.
Based on Java
- The Abstract Window Toolkit (AWT) is Sun Microsystems' original widget toolkit for Java applications. It typically uses another toolkit on each platform on which it runs.
- Swing is a richer widget toolkit supported since J2SE 1.2 as a replacement for AWT widgets. Swing is a lightweight toolkit, meaning it does not rely on native widgets.
- Apache Pivot is an open-source platform for building rich web applications in Java or any JVM-compatible language, and relies on the WTK widget toolkit.
- JavaFX and FXML.
- The Standard Widget Toolkit (SWT) is a native widget toolkit for Java that was developed as part of the Eclipse project. SWT uses a standard toolkit for the running platform (such as the Windows API, OS X Cocoa, or GTK+) underneath.
- Qt Jambi, the official Java binding to Qt from Trolltech. The commercial support and development has stopped[5]
Based on Object Pascal
- IP Pascal uses a graphics library built on top of standard language constructs. Also unusual for being a procedural toolkit that is cross-platform (no callbacks or other tricks), and is completely upward compatible with standard serial input and output paradigms. Completely standard programs with serial output can be run and extended with graphical constructs.
- Lazarus LCL (for Pascal, Object Pascal and Delphi via Free Pascal compiler), a class library wrapping GTK+ 1.2, Gtk+ 2.x and the Windows API (Carbon, Windows CE and Qt4 support are all in development).
- fpGUI is created with the Free Pascal compiler. It doesn't rely on any large 3rdParty libraries and currently runs on Linux, Windows, Windows CE, and Mac (via X11). A Carbon (OS X) port is underway.
- CLX (Component Library for Cross-platform), used with Borland's Delphi, C++ Builder, and Kylix, for producing cross-platform applications. It is based on Qt, wrapped in such a way that its programming interface is similar to that of the VCL toolkit.
Based on Objective-C
Based on Ruby
- Shoes (GUI toolkit) is a cross platform framework for graphical user interface development.
Not yet categorised
Comparison of widget toolkits
Toolkit | Initial release | Latest release | Main language | Bindings | Tools | License | Pros | Cons | Back-end |
---|---|---|---|---|---|---|---|---|---|
Xaw, Athena | 1983 | C | |||||||
AWT | 1995 | Java | portable | ||||||
CEGUI | December 2004 | 0.8.7 (April 28, 2016; 3 years ago) [±][6] | C++ | Python,[7] Lua (using tolua++)[8] | CEED[9] | MIT License | Free license, fast, cross-platform, portable, free GUI editing tool | ||
Clutter | 2006 | C | Perl, Python, C#, C++, Vala, Ruby | LGPL | GTK+ and WebKit embedding | ||||
Elementary | 2007 (EFL: 2001) | 2016 | C | JavaScript, Python, Vala, C++ | editje, edje | LGPL | Portable, stable, fast, finger-friendly | ||
FLTK | 1998 | 2019 | C++ | Python (pyFLTK), Perl (FLTK.pm), Ruby (Ruby/FLTK), Tcl (Tcl Fltk), Guile (guile-fltk), Eiffel (IFLTK) | FLUID (Fast Light UI Designer) | LGPL (with an exception that allows static linking) | fast, small enough to static link | limited widget selection | |
FOX | 1997 | C++ | Ruby (FXRuby), Python (FXPy), Eiffel (EiffelFox) | consistent across platforms | non-native look and feel | ||||
GLUI | C++ | ||||||||
GNUstep | 1994 | 2017 | Objective-C | Java, Ruby, Scheme | Gorm (computing) | GPL for the apps, LGPL for the libs | Portable, free license | Native on macOS (with Cocoa) | X11, Win32, Wayland |
GTK+ | 1997 | 3.24.4[10] (January 21, 2019; 7 months ago) [±] | C | C++ (gtkmm), Perl (Gtk2-perl), Ruby (ruby-gtk2), Python (PyGTK), Haskell (Gtk2Hs), Java (java-gnome) (not available for Microsoft Windows), C# (Gtk#), PHP (PHP-GTK), Ada (GTKAda), D (gtkD), FreeBasic (GladeToBac), Go (go-gtk), OCaml (lablgtk), JavaScript (Gjs, Seed), Fortran (gtk-fortran), Lua (lua-lgi), R (RGtk2) and others via GTK-server | Glade | LGPL | Portable, free license | Partly native only.[11][12] | |
IUP | 1992 | 2017[13] | C | Lua (IupLua)[14] | LEDC: a compiler for LED | MIT | Portable, lightweight, use the native API, native look&feel, free licence | Non‑Unicode (only plain ASCII) [15] | |
Motif, Lesstif | 1980s | C | BX Pro | ||||||
Nana C++ | 2007 | 1.2.2 (December 8, 2015; 3 years ago) [±][16] | C++ | VisualStudio, Dev-C++, Code::Blocks, GCC | portable, lightweight, modern C++ style | ||||
Qt | 1991 | 5.13.1[17] (5 September 2019; 15 days ago) [±] | C++ | Ruby (QtRuby), Python (PyQt, PySide, PythonQt), Ada (QtAda), c# ( Qyoto), Java (Qt Jambi), Pascal ( FreePascal Qt4 ), Perl (Perl Qt4), PHP(PHP-Qt), Haskell (Qt Haskell), Lua (lqt, QtLua), Dao ( DaoQt), Tcl ( qtcl ), Common Lisp (CommonQt), D (QtD), Harbour (hbqt) | Qt Designer, Qt Creator | GPL, LGPL.[18] | Portable, rich widget set, GUI builder, free license, stable API | Partially native only.[19][20][21] | |
Shoes (GUI toolkit) | 2007 | 2010 | Ruby | MIT license/Open source | Simplicity, ease of use | ||||
SWT | Java | D (DWT) | Eclipse | portable | |||||
Swing | 1996 | Java | Eclipse, NetBeans | GPL for OpenJDK | Portable (Java), advanced widgets, GUI builders | ||||
Tk | 1991 | 2015 | C, Tcl | Ruby (RubyTk), Python (Tkinter), Perl (Perl/Tk), Ada (TASH), Common Lisp (LTk), Erlang (etk), ... | | BSD | very portable, many language bindings | |||
Ultimate++ | 2004 | C++ | TheIDE | BSD | portable, NTL, free license | ||||
Rogue Wave Views | 1993 | 2014 (5.8) | C++ | ivfstudio | proprietary | portable (Windows, Unix-like), good support | commercial | ||
VCF | C++ | BSD | free license | ||||||
Windows Forms | CLI languages | CLI languages | Expression, Visual Studio | portability issues, no MVC | |||||
WPF, XAML, Silverlight | 2007 | CLI languages | CLI languages | Expression, Visual Studio | Portability issues | ||||
MFC, WinAPI | 1992 | C++ | Visual Studio | not portable (but Wine implements it for X Window) | |||||
ATL, WTL | 2004 | C++ | Visual Studio | not portable | |||||
wxWidgets | 1992 | 3.1.2 (10 December 2018; 9 months ago) [±][22] | C++ | C++ (native), Ruby (wxRuby), Python (wxPython), Perl (wxPerl), Java (wxJava, jwx!), Lua (wxLua), Tcl(wxTCL), JavaScript (GLUEscript), Smalltalk (wxSqueak), Erlang (wxErlang), Haskell (wxHaskell), C (wxC), D (wxD), .NET Framework (wxNet), Common Lisp (wxCL), Basic (wxBasic), BlitzMax (wxMax), Euphoria (wxEuphoria), Ada (wxAda), Pike (wxPike) | VisualWx, Boa Constructor, PythonCard, Spe, XRCed, wxGlade, wxFormBuilder, DialogBlocks ($), wxDesigner ($) | wxWindows License | Portable, rich widget set, free licence, semantic similarities to MFC make migration easy. | ||
XUL | XML, JavaScript | portable | |||||||
Juce | 2004 | C++ | Jucer | GPL, commercial | Cross-platform, with additional audio plug-in wrapping tools (VST, RTAS, AAX etc.) | ||||
XVT | 1989 | 2010 | C and C++ | Design for C and architect for C++ | Proprietary | Cross-platform, rich widget set, C and C++ GUI builders, very stable | |||
CLX | C++ | ||||||||
VCL | Delphi | ||||||||
Toolkit | Initial release | Latest release | Main language | Bindings | Tools | License | Pros | Cons | Back-end |
See also
原文:https://en.wikipedia.org/wiki/List_of_widget_toolkits
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 38 次浏览
【首席架构师推荐】精选企业门户系统列表
这是一个著名的企业门户供应商列表。企业门户是跨组织边界集成信息、人员和流程的框架。
Vendor | Product Name | Technology | License | Portlet API |
---|---|---|---|---|
Apache Software Foundation | Jetspeed 2.3.1 | Java EE | Apache License v2.0 | JSR-286 |
ATG | ATG Portal | Java EE | Proprietary | JSR-168 |
Broadvision | Broadvision Portal 8.2 | Java EE | Proprietary | JSR-168 |
Bluenog | Bluenog ICE 4.5 | Java EE | Proprietary | JSR-168 |
Edge Technologies | enPortal | Java EE | Proprietary | Proprietary and Java API |
Elcom Technology | CommunityManager.NET | .NET | Proprietary | unknown |
JBoss and eXo | GateIn Portal 3 | Java EE | LGPL | JSR-286 |
Hippo | Hippo | Java EE | Open Source and Proprietary Licenses | Widgets / WOA |
IBM | WebSphere Portal 8.5 | Java EE | Proprietary | JSR-168, JSR-286, WSRP, Widgets / WOA, CMS |
Interwoven | TeamPortal | Java EE | Proprietary | JSR-168 |
JBoss | JBoss Enterprise Portal Platform 5.1 | Java EE | LGPL | JSR-286, WSRP |
Larsen & Toubro Infotech | IntraNet | ASP.NET | Proprietary | unknown |
Liferay | Liferay Portal 7.2 | Java EE | LGPL and Proprietary Licenses | JSR-168, JSR-286, WSRP |
Magnolia International Ltd. | Magnolia CMS | Java EE | GPL and Proprietary Licenses | Components, Spring, CMIS, JSR-170, Web-Services, JSON, JAAS, REST, Open-Social |
Mairie de Paris | Lutèce | Java EE | BSD | JSR-168 |
MetaQuotes Software Corp. | TeamWox | C++ | Proprietary | |
Microsoft | Office Sharepoint Server 2010 | ASP.NET | Proprietary | WSRP,Webparts(Proprietary) |
Open Text Corporation | Vignette Portal 8.0 | Java EE | Proprietary | JSR-286 |
Oracle | Oracle WebCenter Suite 12c | Java EE | Proprietary | JSR-168, JSR-286, WSRP |
Oracle (BEA Systems) | Oracle WebLogic Portal 10g | Java EE | Proprietary | JSR-168, JSR-286 |
Oracle (BEA Systems) | Oracle WebCenter Interaction 10g | Java EE/ASP.NET | Proprietary | JSR-168 |
Oracle | Oracle IAS Portal 10g | Java EE | Proprietary | JSR-168 |
Oracle Cloud | WebCenter Portal Cloud | Java EE | Proprietary | JSR-168, JSR-286 |
Samsung SDS | ACUBE Portal 5.0 | Java EE | Proprietary | JSR-168 |
SAP SE | SAP NetWeaver 7.5 | Java EE | Proprietary | JSR-168 |
SORCE | SORCE V9 | ASP.NET | Proprietary | unknown |
Sun Microsystems | Sun Java System Portal Server 7.2 | Java EE | Open Source, licensing & support plans | JSR-286 |
Sun Microsystems | Sun GlassFish Web Space Server 10.0 | Java EE | Open Source, licensing & support plans | JSR-286 |
Tibco Software | PortalBuilder 5.2 | Java EE | Proprietary | JSR-168 |
TmaxSoft | ProPortal 4.0 | Java EE | Proprietary | JSR-168 |
Jasig | uPortal | Java EE | Apache License v2.0 | JSR-168, JSR-286 |
原文:https://en.wikipedia.org/wiki/List_of_enterprise_portal_vendors
本文:https://pub.intelligentx.net/wikipedia-list-enterprise-portal-vendors
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 80 次浏览
【首席架构师推荐】精选内容管理系统列表
这是一个值得注意的内容管理系统列表,用于组织和促进协作内容创建。其中许多都构建在独立的内容管理框架之上。
开源软件
本节列出可以在web服务器上安装和管理的免费和开源软件。
浅紫色背景下列出的系统不再处于活动开发中。
Java
Java packages/bundle
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
Apache Lenya | Java, XML, Apache Cocoon | 2.0.4[14] | Apache License | 2011-03-14 | |
Daisy | Java, XML, Apache Cocoon | MySQL | 2.4.2 | Apache License | 2011-02-21 |
Microsoft ASP.NET
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
BetterCMS | ASP.NET (Web Forms, MVC) | SQL Server, SQL Azure[15] | 2.0.8[16] | LGPL | 2017-06-20[±] |
C1 CMS | ASP.NET (Web Forms, MVC) | XML, SQL Server | 6.6[17] | Mozilla Public License | 2018-12-05[±] |
DNN | ASP.NET (Web Forms, MVC) | SQL Server, SQL Server Express, SQL Azure | 9.3.2[18] | MIT License | 2019-05-01[±] |
Kentico CMS | ASP.NET | SQL Server | 12.0 SP[19] | Proprietary, Free | 2019-06-26[±] |
mojoPortal | ASP.NET | SQL Server, MySQL, PostgreSQL, SQLite, Firebird, SQL CE | 2.7[20] | EPL | 2018-10-20[±] |
Orchard Project | ASP.NET (Web Forms, MVC) | SQL Server, MySQL, PostgreSQL, SQLite | 1.10.3[21] | New BSD License | 2019-02-28[±] |
Umbraco | ASP.NET (Web Forms, MVC) | SQL Server, SQL CE, SQL Azure, MySQL | 8.0.2[22] | MIT License | 2019-04-30[±] |
Perl
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
blosxom | Perl | Flat-file database | 2.1.2 | MIT | 2008-10-02 |
Bricolage | Perl on mod perl | MySQL, PostgreSQL, Oracle | 2.0.1 | BSD | 2011-02-09 |
EPrints | Perl on mod perl | MySQL, PostgreSQL | 3.4.1[23] | GPL | 2019-04-05[±] |
Foswiki | Perl | Flat-file database | 2.1.6[24] | GPL | 2018-03-02[±] |
Ikiwiki | Perl | Git (software), Apache Subversion, Mercurial | 3.20190228[25] | GPL | 2019-02-28[±] |
Movable Type Open Source | Perl, mod perl, FastCGI, w/PHP | MySQL | 5.2.13 | GPL | 2015-04-14[26] |
Sellerdeck eCommerce | Perl | Flat-file database, Flat-file database | 16.0.3 | GPL | 2017-02-20 |
SPINE | Perl, mod perl | MySQL, PostgreSQL | 1.2.2 | GPL | 2006-12-27 |
TWiki | Perl | Plain files (under version control) | 6.1.0[27] | GPL | 2018-07-16[±] |
WebGUI | Perl on mod perl | MySQL | 7.10.30 | GPL | 2016-01-06[28] |
PHP
Python
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
django CMS | Python/Django | PostgreSQL, MySQL, SQLite 3 and Oracle | 3.6.0[92] | BSD | 2019-01-29[±] |
Mezzanine | Python/Django | PostgreSQL, MySQL, SQLite 3 and Oracle | 4.3.1[93] | BSD | 2018-08-08[±] |
MoinMoin | Python | Flat-file database | 1.9.10[94] | GPL | 2018-09-09[±] |
Plone | Python/Zope | MySQL, PostgreSQL, SQLite, Oracle, ZODB, via Zope | 5.2[95] | GPL | 2019-07-19[±] |
Wagtail | Python/Django | PostgreSQL, MySQL, SQLite 3 and Oracle | 2.5.1 | BSD | 2019-08-05[96] |
Ruby on Rails
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
Alchemy CMS | Ruby on Rails | PostgreSQL, MySQL, SQLite | 4.1.0[97] | BSD | 2018-09-22[±] |
Publify | Ruby on Rails | MySQL, PostgreSQL, SQLite | 9.1.0[98] | MIT | 2018-04-19[±] |
Radiant | Ruby on Rails | MySQL, PostgreSQL, SQLite, DB2[99] | 1.1.4[100] | MIT | 2013-09-24 |
Refinery CMS | Ruby on Rails | MySQL, PostgreSQL, SQLite | 4.0.3[101] | MIT | 2019-03-03[±] |
ColdFusion Markup Language (CFML)
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
ContentBox Modular CMS | Lucee / Railo / Adobe ColdFusion | MySQL/Microsoft SQL Server/PostgreSQL/HSQLDB/Apache Derby | 2.1.0 | Apache License or proprietary | 2015-05-05[102] |
FarCry CMS | Lucee / Railo / OpenBD / Adobe ColdFusion | MySQL/Microsoft SQL Server/Oracle/Postgres | 7.0.7 | GPL or proprietary | 2015-01-14[103] |
Mura CMS | Lucee / Railo / OpenBD / Adobe ColdFusion | MySQL/Microsoft SQL Server/Oracle | 7.1 | GPL or proprietary | 2018-07-13[104] |
JavaScript
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
Ghost | Node.js | SQLite, MySQL | 2.25.3[105] | MIT | 2019-06-26[±] |
TiddlyWiki | Node.js & client-side JavaScript | Flat-file database | 5.1.19[106] | BSD license | 2018-12-20[±] |
Wiki.js | Node.js | MongoDB | 1.0.117[107] | GNU Affero General Public License | 2019-01-22[±] |
Others
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date |
---|---|---|---|---|---|
OpenACS | Tcl AOLserver | PostgreSQL/Oracle | 5.9.1 | GPL | 2017-08-08[108] |
软件即服务(SaaS)
本节列出专有软件,包括软件、主机和与单个供应商的支持。这部分包括免费服务。
Name | Licensed version available | Last stable version | Web content management | Group content management | Enterprise content management |
---|---|---|---|---|---|
Adobe Business Catalyst | V4 End Of Life 2021/03/26 | Yes | Yes | Yes | |
Alfresco Cloud | Yes (Alfresco Community & Enterprise) | 2012.05 | No | Yes | Yes |
Cloud CMS | Yes | 3.2.3 | Yes | Yes | Yes |
Crafter CMS Cloud | Yes (Crafter CMS Enterprise) | 2017.08 | Yes | Yes | No |
censhare | Yes | 2017.02 | Yes | Yes | Yes |
Clickability (Limelight Networks) | No | Yes | No | No | |
dotCMS Cloud[109] | Yes | 5.0.3 | Yes | Yes | Yes |
Frontis Archive Publishing System | Yes | V3.12.01.11 | Yes | Yes | Yes |
Huddle | Yes | 2012 | Yes | Yes | Yes |
Microsoft Office 365 | Yes (MS SharePoint, MS Lync, MS Exchange, MS Office) | 2013 | Yes | Yes | Yes |
O3Spaces | Yes | 3.2.1 | Yes | Yes | No |
OpenKM Cloud [110] | Yes | 6.4.48 [111] | Yes | Yes | Yes |
OU Campus | Yes | 10.2.4 | Yes | Yes | |
Polopoly Web CMS | 10.2 | Yes | Yes | No | |
Quintype | Yes | 1.0 | Yes | Yes | Yes |
uCoz | Yes | Yes | No | ||
Umbraco Cloud | Yes | 7.13.2 | Yes | Yes | Yes |
Windows Live | No | 2011 | No | Yes | No |
XaitPorter | Yes | 4.9.6 | No | No | Yes |
Zesty.io | Yes (Multi-Tenant SaaS) | Versionless | Yes | Yes | Yes |
专有软件
本节列出要在用户自己的服务器上安装和管理的专有软件。本节包括免费软件专有软件。
浅紫色背景下列出的系统不再处于活动开发中。
Name | Platform | Supported databases | Latest stable release | Licenses | Latest release date | Web content management | Group web content management | Enterprise content management |
---|---|---|---|---|---|---|---|---|
Adobe Experience Manager[112] (formerly Day CQ5) | Java | JCR (Apache Jackrabbit Oak), MongoDB | 6.4.2 | Proprietary software | 2018-10[113] | Yes | Yes | Yes |
Alfresco (Enterprise & Community Edition) | Java | Oracle, SQL Server, MySQL, PostgreSQL, DB2 | 4.0.2 Enterprise, 4.2.c Community | Open Source | 2015-03[114] | No | Yes | Yes |
Altitude3.Net | ASP.NET | SQL Server | 2015.07.14 | Proprietary software | 2015-7-14 | Yes | Yes | Yes |
censhare | Java | Oracle | 2017.2 | Proprietary software | 2017-05-12 | Yes | Yes | Yes |
Contegro | ASP.NET | SQL Server | 4.0.0 | Proprietary software | 2010-17-11 | Yes | Yes | No |
Contentverse | Java | Oracle, SQL Server | 8.1 | Proprietary software | 2014 | Yes | Yes | Yes |
CoreMedia WCM | Java | JDBC-compliant databases | 8 | 2015-03-19 | Yes | No | Yes | |
dotCMS | Java | Oracle, SQL Server, MySQL, PostgreSQL | 5.0.3 | Proprietary software | 2018-11-09 | Yes | Yes | Yes |
Ektron CMS | ASP.NET | SQL Server | 9.20 | Proprietary software | 2016-12-09 | Yes | Yes | Yes |
Elcom CMS | ASP.NET | SQL Server | 9.0 | Proprietary software | 2011-02-15 | Yes | Yes | Yes |
Episerver CMS | ASP.NET | SQL Server | 10 | Proprietary software | 2017-01-16 | Yes | Yes | Yes |
ExpressionEngine | PHP | MySQL | 4.3.6 | Proprietary software | 2018-10-02 | Yes | No | Yes |
Hyland OnBase ECM | .NET | SQL Server, Oracle | Yes | Yes | Yes | |||
IBM Enterprise Content Management | Java | Oracle, DB2 | 8.5 | Proprietary software | 2013 | Yes | Yes | Yes |
Jadu | PHP | MySQL, SQL Server | Continuously Released | Proprietary software | Yes | Yes | No | |
Jahia Enterprise Distribution | Java | MySQL, Oracle, PostgreSQL, Microsoft SQL Server | 6.6.2.3 | Proprietary software | 2013-12-20 | Yes | Yes | Yes |
Kentico CMS | ASP.NET | SQL Server | 12.0 SP[19] | Proprietary software | 2019-06-26[±] | Yes | Yes | Yes |
Microsoft SharePoint | ASP.NET | SQL Server (2005, 2008 or 2012), SQL Express | 6.0 | Proprietary, Open API | 2016-05-04 | Yes | Yes | Yes |
Movable Type | Perl | MySQL, Oracle, SQL Server | 7.0 | Proprietary | 2018-05-29[115] | Yes | Yes | Yes |
OpenText Documentum | Java | Oracle, SQL Server, DB2 | 16.4 | Proprietary software | 2018-05-01 | No | No | Yes |
OpenText Teamsite | Java, .Net, XML, XSLT | Oracle, SQL Server, DB2, MySQL | 16.2 | Proprietary software | 2017-04 | Yes | Yes | Yes |
Oracle WebCenter Content (formerly Universal Content Management) |
Java | Oracle | 11g | Yes | Yes | Yes | ||
OU Campus | Java | MySQL, Microsoft SQL Server, SAP Sybase ASE | 10.2.4 | Proprietary software | 2015-06-24 | Yes | Yes | Yes |
Pulse CMS | PHP | Flat-file database | 5.3.2 | 2019-04-24[116] | Yes | No | No | |
Sitecore | ASP.NET (Webforms or MVC) | SQL Server (2005, 2008, 2012), Oracle | 8.2.5 | Proprietary software | 2017-08-01 | Yes | Yes | Yes |
Telligent Community | ASP.NET | SQL Server | 5.0 | 2009-06-26 | Yes | Yes | No | |
TerminalFour (SiteManager) | Java | MySQL, Oracle, SQL Server | 8.1.9.9 | Proprietary | 2017-06-24 | Yes | Yes | Yes |
XaitPorter (local license) | PHP | Oracle | 4.9.6 | Proprietary software | 2013-04 | No | No | Yes |
其他内容管理框架
内容管理框架(CMF)是一个便于使用可重用组件或自定义软件管理Web内容的系统。它共享Web应用程序框架和内容管理系统(CMS)的一些方面。
下面是一个自称是CMFs的著名系统列表。
Name | Technologies |
---|---|
Apache Jackrabbit | Java |
AxKit | Perl |
Jakarta Slide | Java |
Open Semantic Framework | Drupal, OWL, PHP, and RDF |
RadPHP | MySQL, PHP 5.6+, PostgreSQL, and etc. |
原文:https://en.wikipedia.org/wiki/List_of_content_management_systems
本文:https://pub.intelligentx.net/list-content-management-systems
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 167 次浏览
【首席架构师推荐】视频编辑软件列表
以下是视频编辑软件列表
包含在这个列表中的标准是执行非线性视频编辑的能力。大多数现代的代码转换软件都支持对视频剪辑的一部分进行代码转换,这可以算作剪切和修剪。但是,本条各项目有下列条件之一:
是否可以执行其他非线性视频编辑功能,如蒙太奇或合成
可以做修剪或裁剪不转码
Free and open-source
See also: List of free and open-source software packages § Video editing
Active and stable
- Avidemux (Linux, macOS, Windows)
- Blender VSE (Linux, FreeBSD, macOS, Windows)
- Cinelerra (Linux, FreeBSD)
- FFmpeg (Linux, macOS, Windows) – CLI only; no visual feedback
- Kdenlive (Linux, FreeBSD, macOS, Windows)
- LiVES (BSD, IRIX, Linux, Solaris)
- OpenShot Video Editor (FreeBSD, Linux, macOS, Windows)
- Olive (Linux, macOS, Windows)
- Pitivi (Linux, FreeBSD)
- Shotcut (Linux, FreeBSD, macOS, Windows)
Inactive
- Kino (Linux, FreeBSD)
- VirtualDub (Windows)
- VirtualDubMod (Windows)
- VideoLan Movie Creator (VLMC) (Linux, macOS, Windows)
Proprietary
Freeware or Freemium products
Active
- ActivePresenter (Windows) – Also screencast software
- DaVinci Resolve (macOS, Windows, Linux)
- Freemake Video Converter (Windows)
- iMovie (iOS, macOS)
- ivsEdits (Windows)
- Lightworks (Windows, Linux, macOS)
- Microsoft Photos (Windows)[1]
- Screencast-O-Matic (Microsoft Windows, Mac OS X and Chrome OS)[2]
- showbox.com (Windows, macOS)
- VideoPad Home Edition (Windows, macOS, iPad, Android)
- VSDC Free Video Editor (Windows)
- WeVideo (Web app)
Discontinued
- Adobe Premiere Express (Web app)
- Debugmode Wax (Windows)
- Pixorial (Web app)
- VideoThang (Windows)
- Windows Movie Maker (Windows)
Commercial
Active
- Adobe After Effects (macOS, Windows)
- Adobe Premiere Elements (macOS, Windows)
- Adobe Premiere Pro (macOS, Windows)
- Adobe Presenter Video Express (macOS, Windows) – Also screencast software
- Autodesk Flame
- Autodesk Smoke
- Avid Media Composer (Windows, Linux, macOS)
- AVS Video Editor (Windows)
- Camtasia (Windows, macOS) – Also screencast software
- Corel VideoStudio (Windows)
- Cyberlink PowerDirector (Windows)
- DaVinci Resolve Studio (macOS, Windows, Linux)
- Edius (Windows)
- Final Cut Pro X (macOS)
- FORscene (macOS, Windows, Linux)
- Harris Broadcast Velocity (Windows)
- iMovie (macOS)
- Kaltura (Web app)
- Magix Movie Edit Pro (Windows)
- Magix Vegas Pro (Windows) - previously Sony Vegas Pro
- Media 100 Suite (macOS)
- MPEG Video Wizard DVD (Windows)
- muvee Reveal (Windows, macOS)
- Pinnacle Studio (Windows)
- Roxio Creator (Windows)
- Video Toaster (Windows, hardware suite)
- VideoPad Masters Edition (Windows, macOS, iPad, Android)
- Xedio (Windows)
Discontinued
- Xpress Pro (Windows, OS X)
- Pinnacle Videospin (Windows)
- Final Cut Express (OS X)
- Serif MoviePlus (Windows)
- ArcSoft ShowBiz (Windows)
- Avid DS (Windows)
- Clesh (Java on OS X, Windows, Linux)
See also
- Comparison of video editing software
- Comparison of video converters
- Photo slideshow software
- Video editing
原文:https://en.wikipedia.org/wiki/List_of_video_editing_software
本文:https://pub.intelligentx.net/wikipedia-list-video-editing-software
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 41 次浏览
【首席架构师推荐】视频转码软件列表
Open-source
- DVD Flick (Windows)
- FFmpeg (Windows, OS X, Linux)
- HandBrake (Windows, OS X, Linux)
- Ingex (Linux)
- MEncoder (Windows, OS X, Linux)
- Nandub (Windows)
- Thoggen (Linux)
- VirtualDubMod (Windows)
- VirtualDub (Windows)
- VLC Media Player (Windows, Mac OS X, Linux)
- Arista (Linux)
Freeware
- Freemake Video Converter (Windows)
- FormatFactory (Windows)
- Ingest Machine DV (Windows)
- MediaCoder (Windows)
- SUPER (Windows)
- Windows Media Encoder (Windows)
- XMedia Recode (Windows)
- Zamzar (Web application)
- ZConvert (Windows)
Commercial
- Compressor (Mac OS X)
- MPEG Video Wizard DVD (Windows)
- ProCoder (Windows)
- QuickTime Pro (Mac OS X, Windows)
- Roxio Creator (Windows)
- Sorenson Squeeze
- Telestream Episode (Mac OS X, Windows)
- TMPGEnc (Windows)
- Wowza Streaming Engine with included Wowza Transcoder feature (Linux, Mac OS X, Windows)
- Zamzar - Premium service (Web application)
- Zencoder (Web application)
See also
原文:https://en.wikipedia.org/wiki/List_of_video_transcoding_software
本文:https://pub.intelligentx.net/wikipedia-list-video-transcoding-software
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 24 次浏览