ZZ method
From Speedsolving.com Wiki

The ZZ method is a 3x3 speedsolving method created by Zbigniew Zborowski in 2006. The method is focused both on low move count and high turning speed; during the majority of F2L, the solver only needs to make L, U, and R moves, which means that the solver's hands never leave the left and right sides of the cube, resulting in faster solving. In addition, edges are already oriented when the solver reaches the last layer, meaning the solver has fewer cases to deal with.
Contents
The Steps
 EOLine: This is the most distinctive part of the ZZ method. In this step, the solver orients all the edges while placing the DF and DB edges. The two edges and the bottom centre are the "line" in EOLine. This step puts the cube into an <L, U, R> group, meaning F, B, or D moves are not required for the remainder of the solve. Although this step may seem like a hinderance, it speeds up the F2L and LL.
 ZZ F2L: The solver creates a 2x3x1 block on each side of the line via blockbuilding. Because one only needs to do L, U, and R moves, solving is very quick.
 LL: The solver uses algorithms to solve the remaining pieces. Since the edges in the LL were oriented during EOLine, it can be completed in fewer moves and/or with fewer algorithms to learn.
Techniques
 Phasing During last slot, the LL edges are permuted using Phasing to permute opposite edges to be opposite using 3 different inserts. This reduces the amount of LL cases.
 Corner Permutation The first block can be solved slightly differently or an alg can be used to permute the corners such that the rest of the solve can be done 2gen.
Variants
There are several variations of the ZZ method, each of which treats the F2L and LL differently:
Solving F2L and LL separately
 OCLL + PLL LL is solved using OCLL to orient the LL corners, then PLL is used to permute the LL. This is the simplest of all the variants and the most used when beginning to use ZZ.
 OCELL + CPLL This is similar to using COLL + EPLL, but more of the algorithms can be 2gen. First the LL corners are oriented and LL edges are permuted in one step, then the cube is completed with CPLL in the final step.
 ZZa: ZBLL, a subset of 1LLL (onelook last layer), is used to solve the last layer with one alg. There are 493 cases and can be done with less algs by taking advantage of mirrors.
 COLL + EPLL, or ZZVH (sometimes mistakenly called ZZa). COLL is used to orient and permute the LL corners while preserving LL edge orientation (42 algorithms), EPLL is left to permute the LL edges (4 algorithms). Often used in OH solving because all EPLL's can be solved 2gen.
 NMLL completes the last layer when matching or nonmatching blocks are used. The first step separates the colors belonging to the left and right layer. The second finishes permutation.
 ZZtop: During EOline, orient only the cross edges and F2L edges. After ZZF2L you will end up with the same last layer as CFOP, so you can just do OLL/PLL.
Influencing LL during F2L
 ZZb: During last slot, the LL edges are phased and ZZLL is used to solve the LL in one look.
 ZZreduction During the Last Slot, the LL edges are phased and a 2look orientation + permutation approach is used, with the phased edges preserved in the orientation step, resulting in a reduction of PLL cases down to 9 compared to 21 in full PLL. This is the least algorithm intensive 2look method for solving the last layer of any 2LLL method, needing 7 + 9 = 16 total algorithms.
 ZZWV: Before the last corneredge pair is solved, The LL corners are oriented with PLL left to be done.
 ZZc: The last layer corners are oriented during insertion of the last F2L block. This system is similar to using Winter Variation, but can be applied to any last block situation and uses many more algorithms. Conceptually, the comparison of ZZc with ZZWV is similar to the comparison of ZBLS with VH.
 ZZblah The last layer corners are disoriented during insertion of the last slot allowing the last layer to be solved using the Pi and H subsets of ZBLL.
 MGLSZ During last slot, only the edge is placed. LL corner orientation and the final F2L corner are then solved in one step using CLS. Finally the solve is completed with PLL.
 EJLS Similar to MGLSZ, but using less algorithms. During the F2L last slot the edge and corner are connected and placed, but the corner is not necessarily oriented. A subset of CLS is then used to orient the last slot corner along with the LL corners. PLL to finish.
 ZZCT: This variant solves EO and all but one F2L slot, then inserts the last edge and orients corners in one algorithm, then solves the rest (PLL and one corner), again in one algorithm.
 ZZLSE or ZZ4c: Instead of solving EO and a line comprising of DF and DB, solve EO and then place the edges that go to UL and UR at DF and DR. After ZZF2L, you can then do COLL and then go directly into Roux LSE step 4c, which often is more efficient than EPLL.
Solving Corner Permuation during F2L
These methods solve Corner Permutation leaving the cube in a 2gen state.
 ZZd: Just before the completion of the left block, corners are permuted and 2GLL can be used to finish. Only a maximum of 2 additional moves are required to correctly solve CP. This process is called CPLS. However, the solver must determine the permutation of all the unsolved corners to execute this step; this is a slow process, which makes ZZd inappropriate for speed solving.
 ZZOrbit: Corners are permuted during insertion of the last F2L's pair. Recognition is not so straight forward, but much faster than that of ZZd. Once performed, 2GLL can be used for 1look last layer. This has many similarities to CPLS+2GLL, but was developed independently. Thread:[1] Guide:[2]
 ZZz: After left block, CP is solved, then a 1x2x2 block is made on BDR and LPELL is used to permute the edges and finish F2L, and 2GLL is left to finish the solve.
 ZZporky v1: Also known as ZZe. The D layer corners are put in the D layer (not neccessarily permuted) and alg is used to solve corner permutation. Post:[3]
 ZZRainbow: A variant of ZZporky v1. After EOline, place the DFR and DRB corners in place and get the Left Block pieces in the L and U layers. Then either solve the first block<LU> or do a z rotation and then solving it RU. After first block, you have already done the setup moves for ZZporky v1, and so execute the ZZporky algorithm, then solve the rest of the cube 2gen.
 ZZporky v2: After solving the first square of ZZF2L, place the DRB and DRF corners and AUF the last first block corner to UBL. then execute an algorithm to permute the corners. Followingly, insert the last first block pair using only <LU> moves, then solve the rest of the cube with only <RU> moves.
 CPLS+2GLL: After solving ZZF2L1 slot, insert the edge. then insert the final corner while solving CP, then finish with 2GLL.
General Variants
 ZZsnake pattern (ZZSP): After solving the first ZZF2L block on L, solve a 1x2x3 block on the top of the cube with <RU>, then rotate with a z' and solve the LL.
Pros
 Reduced Move Set: F2L is completed using only R, U and L turns and no cube rotations are required. This makes ZZ especially suited for onehanded solving.
 Lookahead: Preorientation of edges halves the F2L cases and makes edges easier to find and connect to blocks/corners. During a ZZ solve, the cube is typically held in the same orientation through out the solve which allows a memory map of pieces' correct locations to develop allowing fast/intuitive ability to place pieces without thinking/looking.
 Efficiency: With a blockbuildingbased F2L and preorientation of LL edges around 55 moves can be achieved without difficulty. Optimising F2L blockbuilding and adoption of more advanced LL systems such as ZBLL will reduce this move count significantly.
 Ease of Learning: Most of the difficulty in ZZ is confined to the EOLine stage. Intuitive blockbuilding during F2L is fairly easy to pick up and only 20 algorithms (assuming use of mirrors) are required to achieve a 2look last layer with OCLL/PLL.
 Flexibility: With edges preoriented many systems exist for completing the last layer in a ZZ solve, ranging from OCLL/PLL to ZBLL. A blockbuilding F2L also allows for the development of many short cuts and tricks as skill improves.
Cons
 Reliance on Inspection  ZZ makes heavy use of inspection time, which is fine when 15 seconds is given, but in situations where no inspection is used it can be a drawback. For example, when using reduction on big cubes or within multisolve scenarios starting a ZZ solve can be difficult. This isn't much more than other methods though.
 Difficulty of EOLine  EOLine is weird to get used to at first. In order to plan and execute in one step and takes a long time to master. New users should expect it to take in the order of months to achieve full EOLine inspection in 15 seconds. In the interim, breaking it down into two steps (EO + Line) can be used as a fallback.
 2 Extra F2L Cubies to Solve  The first step of Fridrich (Cross) and ZZ (EOLine) are roughly comparable in terms of movecount. The remainder of F2L in ZZ requires solving of two more cubies (10 in total) than Fridrich slots (8 in total). However, freedom to fully rotate the L and R faces and the use of more efficient block building compensates for this apparent disadvantage.
 Switching between L and R moves  On the other hand, this can feel weird. It takes some time getting used to and mastering. After one does master this though, f2l is really smooth.
Notable users
See also
Improvements
 EOCross  Instead of doing EOLine, you can start with a cross instead. While this sacrifices efficiency, it trades up for a better lookahead and TPS.
External links
 ZZ Method Tutorial
 EOLine Solver (Java)
 YouTube: ZZ Beginner's Tutorial
 YouTube: EOLine tutorial
 YouTube: ZZ Method Variations
 Speedsolving.com: ZZ Speedcubing Method
 Speedsolving.com: ZZ Cubers
 Speedsolving.com: ZZ/ZB Home Thread
 Speedsolving.com: ZZF2L Move Count
 Speedsolving.com: Noob's Approach to Missing Link for ZZd