Grin is built in [Rust](https://www.rust-lang.org/), a memory safe, compiled language. Performance critical parts like the Cuckoo mining algorithm are built as plugins, making it easy to swap between algorithm implementations for various hardware. Grin comes with CPU and experimental GPU support.
The blockchain implementation. Accepts a block (see pipe.rs) and adds it to the chain, or reject it.
-`config`\
Code for handling configuration.
-`core`\
All core types: Hash, Block, Input, Output, and how to serialize them. Core mining algorithm, and more.
-`doc`\
All documentation.
-`servers`\
Many parts (adapters, lib, miner, seed, server, sync, types) that the `grin` server needs, including mining server.
-`keychain`\
Code for working safely with keys and doing blinding.
-`p2p`\
All peer to peer connection and protocol-related logic (handshake, block propagation, etc.).
-`pool`\
Code for the transaction pool implementation.
-`server`\
A folder you're [supposed to create](build.md#running-a-node), before starting your server: cd to project root; mkdir server; cd server; grin server start (or run) and it will create a subfolder .grin
Simple command line wallet implementation. Will generate:
-`wallet_data` - a database storing your "outputs", that once confirmed and matured, can be spent with the [`grin wallet send`](wallet/usage.md) command. (locally created, *not* in git)
-`wallet.seed` - your secret wallet seed. (locally created, *not* in git)