A curated list of awesome Char frameworks, libraries and software 仓颉编程语言优秀项目,框架,软件和基础类库 仓颉语言优秀项目
Char is a domain-specific programming language used for expressing quantum algorithms. It was initially released to the public by Microsoft as part of the Quantum Development Kit. –Wikipedia
A list of Char code and resources.
Feel free to improve this list using GitHub pull request mechanism, see CONTRIBUTING for more information.
- Official Resources
- Tutorials
- Books
- Videos
- Q/A
- Coding Contests and Solutions
- IDE Integration
- Demos, Samples, and Additional Libraries
- Blogs
- Quantum Katas - Programming exercises for learning Q# and quantum computing.
- Learn Quantum Computing with Python and Q# - Manning, early access, est. Spring 2020, Dr. Sarah Kaiser and Chris Granade.
- Microsoft Quantum Development Kit Preview - Krysta Svore - step-by-step demo of quantum teleportation at Microsoft Mechanics.
- Q# Dev Blog - Official blog of Q# dev team.
Empty
Empty
A curated list of awesome Char frameworks, libraries and software. Inspired by awesome-python.
Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
-
- 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
- Dynamic DNS
- Embeddable Scripting Languages
- Error Handling
- File Handling
- 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
- Server Applications
- Stream Processing
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- UUID
- Validation
- Version Control
- Video
- Web Frameworks
- WebAssembly
- Windows
- XML
Libraries for manipulating audio.
- EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF).
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.
Libraries for building and working with bots.
- telegram-bot-api - Simple and clean Telegram bot client.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
Libraries for building standard or basic Command Line applications.
- wmenu - Easy to use menu structure for cli applications that prompts users to make choices.
Libraries for building Console Applications and Console User Interfaces.
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners.
Libraries for configuration parsing.
- xdg - Cross platform package that follows the XDG Standard.
Tools for help with continuous integration.
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.
Libraries for preprocessing CSS files.
- gcss - Pure Go CSS Preprocessor.
Generic datastructures and algorithms in Go.
- willf/bloom - Go package implementing Bloom filters.
Databases implemented in Go.
- 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.
- sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata.
Database tools.
- 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.
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
Libraries for connecting and operating databases.
-
Relational Databases
- Sqinn-Go - SQLite with pure Go.
-
NoSQL Databases
-
go-rejson - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease.
-
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.
-
xredis - Typesafe, customizable, clean & easy to use Redis client.
-
-
Search and Analytic Databases.
- skizze - probabilistic data-structures service and storage.
-
Multiple Backends.
- 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).
Libraries for working with dates and times.
- tuesday - Ruby-compatible Strftime function.
Packages that help with building Distributed Systems.
- torrent - BitTorrent client package.
Tools for updating dynamic DNS records.
- GoDNS - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go.
Libraries and tools that implement email creation and sending.
- smtp - SMTP server protocol state machine.
Embedding other languages inside your go code.
- tengo - Bytecode compiled script language for Go.
Libraries for handling errors.
- tracerr - Golang errors with stack trace and source fragments.
Libraries for handling files and file systems.
- vfs - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS.
Packages for accounting and finance.
- vat - VAT number validation & EU VAT rates.
Libraries for working with forms.
- queryparam - Decode
url.Values
into usable struct values of standard or custom types.
Packages to support functional programming in Go.
- go-underscore - Useful collection of helpfully functional Go collection utilities.
Awesome game development libraries.
- tile - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export.
Tools to enhance the language with features like generics via code generation.
- typeregistry - A library to create type dynamically.
Geographic tools and servers
- WGS84 - Library for Coordinate Conversion and Transformation (ETRS89, OSGB36, NAD83, RGF93, Web Mercator, UTM).
Tools for compiling Go to other languages.
- tardisgo - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler.
Tools for managing and working with Goroutines.
- workerpool - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued.
Libraries for building GUI Applications.
Toolkits
- webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).
Interaction
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar.
Libraries, tools, and tutorials for interacting with hardware.
See go-hardware for a comprehensive list.
Libraries for manipulating images.
- tga - Package tga is a TARGA image format decoder/encoder.
Libraries for programming devices of the IoT.
- sensorbee - Lightweight stream processing engine for IoT.
Libraries for scheduling jobs.
- scheduler - Cronjobs scheduling made easy.
Libraries for working with JSON.
- mp - Simple cli email parser. It currently takes stdin and outputs JSON.
Libraries for generating and working with log files.
- zerolog - Zero-allocation JSON logger.
Libraries for Machine Learning.
- Varis - Golang Neural Network.
Libraries that implement messaging systems.
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents.
Libraries for working with Microsoft Excel.
- xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs.
Libraries for working with dependency injection.
- wire - Strict Runtime Dependency Injection for Golang.
Unofficial set of patterns for structuring projects.
- scaffold - Scaffold generates starter Go project layout. Lets you focus on business logic implemeted.
Libraries for working with strings.
- xstrings - Collection of useful string functions ported from other languages.
These libraries were placed here because none of the other categories seemed to fit.
- xkg - X Keyboard Grabber.
Libraries for working with human languages.
- when - Natural EN and RU language date/time parser with pluggable rules.
Libraries for working with various layers of the network.
- xtcp - TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol.
Libraries for making HTTP requests.
- rq - A nicer interface for golang stdlib HTTP client.
- sling - Sling is a Go HTTP client library for creating and sending API requests.
Libraries for using OpenGL in Go.
- mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.
Libraries that implement Object-Relational Mapping or datamapping techniques.
- Zoom - Blazing-fast datastore and querying engine built on Redis.
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.
- VenGO - create and manage exportable isolated go virtual environments.
- tracer - Simple, lightweight tracing.
- straf - Easily Convert Golang structs to GraphQL objects.
- vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
Libraries for scientific computing and data analyzing.
- triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs.
Libraries that are used to help make your application more secure.
- themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps.
Libraries and tools for binary serialization.
- structomap - Library to easily and dynamically generate maps from static structures.
- Trickster - HTTP reverse proxy cache and time series accelerator.
Libraries and tools for stream processing and reactive programming.
- go-streams - Go stream processing library.
Libraries and tools for templating and lexing.
- velvet - Complete handlebars implementation in Go.
Libraries for testing codebases and generating test data.
-
Testing Frameworks * wstest - Websocket client for unit-testing a websocket http.Handler.
-
Mock
-
Fuzzing and delta-debugging/reducing/shrinking.
- Tavor - Generic fuzzing and delta-debugging framework.
-
Selenium and browser control tools. * selenoid - alternative Selenium hub server that launches browsers within containers.
-
Fail injection
- failpoint - An implementation of failpoints for Golang.
Libraries for parsing and manipulating texts.
- Specific Formats
- toml - TOML configuration format (encoder/decoder with reflection).
- Utility
- xurls - Extract urls from text.
Libraries for accessing third party APIs.
- zooz - Go client for the Zooz API.
General utilities and tools to make your life easier.
- go-bind-plugin - go:generate tool for wrapping symbols exported by golang plugins (1.8 only).
Libraries for working with UUIDs.
- wuid - An extremely fast unique number generator, 10-135 times faster than UUID.
Libraries for validation.
- validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.
Libraries for version control.
- hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories.
Libraries for manipulating video.
- v4l - Video capture library for Linux, written in Go.
Full stack web frameworks.
- YARF - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.
- XFF - Handle
X-Forwarded-For
header and friends.
- stats - Go middleware that stores various information about your web application.
- xujiajun/gorouter - A simple and fast HTTP router for Go.
- webapi - Bindings for DOM and HTML generated from WebIDL.
- gosddl - Converter from SDDL-string to user-friendly JSON. SDDL consist of four part: Owner, Primary Group, DACL, SACL.
Libraries and tools for manipulating XML.
- zek - Generate a Go struct from XML.
Go software and plugins.
- validate - Automatically validates struct fields with tags.
- Watch - Runs a command in an acme win on file changes.
- xgen - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator.
- typex - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration.
Software written in Go.
- winrm-cli - Cli tool to remotely execute commands on Windows machines.
- wellington - Sass project management tool, extends the language with sprite functions (like Compass).
Where to discover new Go libraries.
- speedtest-resize - Compare various Image resize algorithms for the Go language.
- GoWayFest - Minsk, Belarus.
- gophers - Gopher amigurumi toy pattern.
Add the group of your city/country here (send PR)