Learning Odin because I wanna get into low-level programming and do some cool stuff with it.
This technically follows the Odin documentation coincidentally.
Projects on this repo:
- Hello World - Odin basics. (Like
node index.js) -odin run main.odin - Hello Package - Odin basics + Package Management. (Like
npm run dev) - Guessing Game - Random number generate, then take user input until random number is guessed.
- Salary - Console app that estimates salary based on hourly, daily, monthly, and yearly rates.
- Tried Passwords CLI - Recreation of my Go implementation.
- HTTP Server - Simple HTTP server to understand networking and concurrency in Odin.
- Server - API Server with Odin's standard HTTP libraries.
- API Server - Type-safe API Server using Odin's type system.
- TCP Socket Chat - A console-based chat application using sockets to understand network communication.
- Random Quotes - A simple CLI application that fetches a random quote from the API Ninjas Quotes.
- Tic Tac Toe - A simple Tic Tac Toe game with persistence.
- WebSocket Chat - A console-based chat application using WebSockets to understand network communication on browser.
- Static Site Generator - Converts markdown to HTML.
- GUI App - Native GUI application using Odin's bindings.
- Basic GUI - A simple GUI program using Odin's GUI libraries.
- GUI Input - A simple input field with Odin's GUI libraries.
- Todo GUI Application - A simple GUI application to manage tasks.
- Install Odin by cloning the repository and building from source, or downloading pre-built binaries. Or
brew install odin - CLI's you need to know: The
odincommand handles compilation and running odin run .probably your main feedback loop command in a project (finds main.odin).odin run <file> -filecompile and run a specific odin file.odin build <file> -fileto compile onlyodin check <file>to type check without compilingodin run -file <file>to specify input fileodin build -out:<name>to specify output nameodin run -debugfor debug buildsodin build -releasefor release buildsodin run -show-timingsto see compilation timings- Collections are handled through the core library
- Package management is done through git submodules or local paths
- Package - A collection of Odin source files
- Procedure - Function declaration with
proc - Struct - Custom data type definition
- Union - Tagged union type
- Enum - Enumerated type
- Import - Bringing in other packages with
import - Foreign - External C code linkage