A quick and easy way to setup a RESTful JSON API Go-Json-Rest is a thin layer on top of net/http that helps building RESTful JSON APIs easily. It provides fast URL routing using a Trie based implementation, and helpers to deal with JSON requests and responses. It is not a high-level REST framework that transparently maps HTTP requests to procedure calls, on the opposite, you constantly have access to the underlying net/http objects. Example: Note about the URL routing: Instead of using the usual "evaluate all the routes and return the first regexp that matches" strategy, it uses a Trie data structure to perform the routing. This is more efficient, and scales better for a large number of routes. It supports the :param and *splat placeholders in the route strings.
Package mux implements a high performance and powerful trie based url path router for Go.
Package trie implements a byte trie with edge compression.
Package trie is a pointer based Trie implementation. Since 0.1.0
Package trie implements trie tree (or prefix tree) data structure useful for things like prefix search/autocompletion. For now, it supports Insert, HasWord, HasPrefix and WordsByPrefix methods.
Package trie implements several types of performant Tries (e.g. rune-wise, path-wise). The implementations are optimized for Get performance and to allocate 0 bytes of heap memory (i.e. garbage) per Get. The Tries do not synchronize access (not thread-safe). A typical use case is to perform Puts and Deletes upfront to populate the Trie, then perform Gets very quickly.
Go Implementation of a Thread Safe Trie Data Structure and (some of) Trie Operations
Package btrie provides a binary trie implementation (radix or prefix tree). The trees are partially compressed, i.e. strings of single-child nodes are compressed from the end of the tree, producing a tree only as deep as the longest common prefix. However, edges in the middle do not compress so the space usage is suboptimal when keys have long common prefixes. Keys are made up of an arbitrary length of bytes values are arbitrary interfaces Naturally, the advantage of using a binary trie instead of a hashtable (natively implemented as golang maps) is the ability to obtain all entries in a sorted fashion or to efficiently explore the "neighbourhood" of a given entry by requesting the subtree or querying on a range of values. Performance is optimized, among other things, by using iterative rather than recursive algorithms. This implementation is not thread-safe (goroutine-safe). Calling code should synchronize if necessary.
Package trie implements a thread-safe trie, also known as digital tree or prefix tree. It can be used as a drop-in replacement for usual Go maps with string keys.
Special Trie implementation for HTTP routing. This Trie implementation is designed to support strings that includes :param and *splat parameters. Strings that are commonly used to represent the Path in HTTP routing. This implementation also maintain for each Path a map of HTTP Methods associated with the Route. You probably don't need to use this package directly.
Package trie contains a primitive implementation of the Trie data structure. Copyright 2017 Aleksandr Bezobchuk.
Package trie implements several types of performant Tries (e.g. rune-wise, path-wise). The implementations are optimized for Get performance and to allocate 0 bytes of heap memory (i.e. garbage) per Get. The Tries do not synchronize access (not thread-safe). A typical use case is to perform Puts and Deletes upfront to populate the Trie, then perform Gets very quickly.
Implementation of an R-Way Trie data structure. A Trie has a root Node which is the base of the tree. Each subsequent Node has a letter and children, which are nodes that have letter values associated with them.
Package trie implements several types of performant Tries (e.g. rune-wise, path-wise). The implementations are optimized for Get performance and to allocate 0 bytes of heap memory (i.e. garbage) per Get. The Tries do not synchronize access (not thread-safe). A typical use case is to perform Puts and Deletes upfront to populate the Trie, then perform Gets very quickly.
This package exposes a simple Trie implementation
Package trie implements several types of performant Tries (e.g. rune-wise, path-wise). The implementations are optimized for Get performance and to allocate 0 bytes of heap memory (i.e. garbage) per Get. The Tries do not synchronize access (not thread-safe). A typical use case is to perform Puts and Deletes upfront to populate the Trie, then perform Gets very quickly.
The trie package implements a trie (prefix tree) data structure over byte slices.
Package iptrie implements trie for keeping IP/mask info