Here is a list of binary linear codes.
Code Description
Binary BCH code Cyclic binary code of odd length $$n$$ whose zeroes are consecutive powers of a primitive $$n$$th root of unity $$\alpha$$ (see Cyclic-to-polynomial correspondence). More precisely, the generator polynomial of a BCH code of designed distance $$\delta\geq 1$$ is the lowest-degree monic polynomial with zeroes $$\{\alpha^b,\alpha^{b+1},\cdots,\alpha^{b+\delta-2}\}$$ for some $$b\geq 0$$. BCH codes are called narrow-sense when $$b=1$$, and are called primitive when $$n=2^r-1$$ for some $$r\geq 2$$.
Binary duadic code Member of a pair of cyclic linear binary codes that satisfy certain relations, depending on whether the pair is even-like or odd-like duadic. Duadic codes exist for lengths $$n$$ that are products of powers of primes, with each prime being $$\pm 1$$ modulo $$8$$ [1].
Binary quadratic-residue (QR) code Member of a quadruple of cyclic binary codes of prime length $$n=8m\pm 1$$ for $$m\geq 1$$ constructed using quadratic residues and nonresidues of $$n$$.
Cyclic linear binary code A binary code of length $$n$$ is cyclic if, for each codeword $$c_1 c_2 \cdots c_n$$, the cyclically shifted string $$c_n c_1 \cdots c_{n-1}$$ is also a codeword. A cyclic code is called primitive when $$n=2^r-1$$ for some $$r\geq 2$$. A shortened cyclic code is obtained from a cyclic code by taking only codewords with the first $$j$$ zero entries, and deleting those zeroes.
Expander code Expander codes are binary linear codes whose parity check matrices are derived from the adjacency matrix of bipartite expander graphs. In particular, the rows of the parity check matrix correspond to the right nodes of the bipartite graph and the columns correspond to the left nodes. The codespace is equivalent to all subsets of the left nodes in the graph that have an even number of edges going into every right node of the graph. Since the expander graph is only left regular, these codes do not qualify as LDPC codes.
Fibonacci code The code is defined on an $$L\times L/2$$ lattice with one bit on each site, where $$L=2^N$$ for an integer $$N\geq 2$$. The codewords are defined to satisfy the condition that, for each lattice site $$(x,y)$$, the bits on $$(x,y)$$, $$(x+1,y)$$, $$(x-1,y)$$ and $$(x,y+1)$$ (where the lattice is taken to be periodic in both directions) contain an even numbers of $$1$$'s. The codewords can be generated using a one-dimensional cellular automaton of length $$L$$ (periodic). The $$2^L$$ possible initial states correspond to the $$2^L$$ codewords. For each generation, the state of each cell is the xor sum of that cell and its two neighbors in the previous generation. After $$L/2-1$$ generations, the entire history generated by the automaton corresponds to a codeword, where the initial state is the first row of the lattice, the first generation is the second row, etc.
Fountain code Code based on the idea of generating an endless stream of custom encoded packets for the receiver. The code is designed so that the receiver can recover the original transmission of size $$Kl$$ bits after receiving at least $$K$$ packets each of $$l$$ bits.
Golay code A $$[23, 12, 7]$$ perfect binary linear code with connections to various areas of mathematics, e.g., lattices [2] and sporadic simple groups [3]. Adding a parity bit to the code results in the $$[24, 12, 8]$$ extended Golay code. Up to equivalence, both codes are unique for their respective parameters.
Graph homology code This code's properties are derived from the size two chain complex associated with a particular graph. Given a connected simplicial (no self loops or muliedges) graph $$G = (V, E)$$, which is not a tree, with incidence matrix $$\Gamma$$ we can construct a code by choosing a parity check matrix which consists of all the linearly independent rows of $$\Gamma$$. This is a $$[n,k,d]$$ code with $$n = |E|$$, $$k = 1 - \mathcal{X}(G) = 1-|V|+|E|$$, where $$\mathcal{X}(G)$$ is the euler characteristic of the graph. The code distance is equal to the shortest size of a cycle, guaranteed to exist since $$G$$ is not a tree.
Hadamard code An $$[2^k,k,2^{k-1}]$$ balanced binary code dual to an extended Hamming Code.
Hamming code An infinite family of perfect linear codes with parameters $$(2^r-1,2^r-r-1, 3)$$ for $$r \geq 2$$. Their $$r \times (2^r-1)$$ parity check matrix $$H$$ has all possible non-zero $$r$$-bit strings as its columns.
Justesen code Binary linear code resulting from generalized concatenation of a Reed-Solomon (RS) outer code with multiple inner codes sampled from the Wozencraft ensemble, i.e., $$N$$ distinct binary inner codes of dimension $$m$$ and length $$2m$$. Justesen codes are parameterized by $$m$$, with length $$n=2mN$$ and dimension $$k=mK$$, where $$(N=2^m-1,K)$$ is the RS outer code over $$GF(2^m)$$.
Linear binary code An $$(n,2^k,d)$$ linear code is denoted as $$[n,k]$$ or $$[n,k,d]$$, where $$d$$ is the code's distance. Its codewords form a linear subspace, i.e., for any codewords $$x,y$$, $$x+y$$ is also a codeword. A code that is not linear is called nonlinear.
Luby transform (LT) code Erasure codes based on fountain codes. They improve on random linear fountain codes by having a much more efficient encoding and decoding algorithm.
One-hot code Also known as an $$1$$-in-$$n$$ code. A length-$$n$$ binary code whose codewords are those with Hamming weight one. The reverse of this code, where all codewords have Hamming weight $$n-1$$ is called a one-cold code.
Parity-check code Also known as a sum-zero or even-weight code. An $$[n,n-1,2]$$ linear binary code whose codewords consist of the message string appended with a parity-check bit such that the parity (i.e., sum over all coordinates of each codeword) is zero. If the Hamming weight of a message is odd (even), then the parity bit is one (zero). This code requires only one extra bit of overhead and is therefore inexpensive.
Polar code In its basic version, a binary linear polar code encodes $$K$$ message bits into $$N=2^n$$ bits. The linear transformation that defines the code is given by the matrix $$G^{(n)}=B_N G^{\otimes n}$$, where $$B_N$$ is a certain $$N\times N$$ permutation matrix, and $$G^{\otimes n}$$ is the $$n$$th Kronecker power of the $$2\times 2$$ kernel matrix $$G=\left[\begin{smallmatrix}1 & 0\\ 1 & 1 \end{smallmatrix}\right]$$. To encode $$K$$ message bits, one forms an $$N$$-vector $$u$$ in which $$K$$ coordinates represent the message bits. The remaining $$N-K$$ coordinates are set to some fixed values and are said to be frozen. The codeword $$x \in \{0,1\}^N$$ is obtained as $$x=u G^{\otimes n}$$.
Raptor (RAPid TORnado) code Raptor codes are concatenated erasure codes with two layers: an outer pre-code and a Luby-Transform (LT) inner code. The pre-code is a linear binary erasure code, which is applied first to the input to create some redundant data. The LT code is then applied to the intermediate symbols from the pre-code to generate final output symbols to be transmitted.
Reed-Muller (RM) code Member of the RM$$(r,m)$$ family of linear binary codes derived from multivariate polynomials. The code parameters are $$[2^m,\sum_{j=0}^{r} {m \choose j},2^{m-r}]$$, where $$r$$ is the order of the code satisfying $$0\leq r\leq m$$. Punctured RM codes RM$$^*(r,m)$$ are obtained from RM codes by deleting one or more coordinates from each codeword.
Repetition code $$[n,1,n]$$ binary linear code encoding one bit of information into an $$n$$-bit string. The length $$n$$ needs to be an odd number, since the receiver will pick the majority to recover the information. The idea is to increase the code distance by repeating the logical information several times. It is a $$(n,1)$$-Hamming code.
Tanner code Binary linear code defined on edges on a regular graph $$G$$ such that each subsequence of bits corresponding to edges in the neighborhood any vertex belong to some short binary linear code $$C_0$$. Expansion properties of the underlying graph can yield efficient decoding algorithms.
Tetracode The $$[4,2,3]_{GF(3)}$$ self-dual MDS code with generator matrix \begin{align} \begin{pmatrix}1 & 0 & 1 & 1\\ 0 & 1 & 1 & 2 \end{pmatrix}~, \end{align} where $$GF(3) = \{0,1,2\}$$. Has connections to lattices [2].
Tornado code Stub.
Weight-two code A length-$$n$$ binary code whose codewords all have Hamming weight two. Such codes provide slightly extra redundancy for storage of small-scale information such as ZIP codes or decimal digits.
Zetterberg code Family of binary cyclic $$[2^{2s}+1,2^{2s}-4s+1]$$ codes with distance $$d>5$$ generated by the minimal polynomial $$g_s(x)$$ of $$\alpha$$ over $$GF(2)$$, where $$\alpha$$ is a primitive $$n$$th root of unity in the field $$GF(2^{4s})$$. They are quasi-perfect codes and are one of the best known families of double-error correcting binary linear codes

## References

[1]
V. Pless, “Duadic Codes and Generalizations”, Eurocode ’92 3 (1993). DOI
[2]
J. H. Conway and N. J. A. Sloane, Sphere Packings, Lattices and Groups (Springer New York, 1999). DOI
[3]
F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.