Is there any way one could read from stdin in non-canonical mode under Linux? Non-canonical input means that calls to read() on stdin shall return as soon as the user types, which is not the default behaviour, as one can see by trying:
// Create a buffer let mut buffer :[u8; 1] = [0]; // Loops over the input from stdin, one character a time while io::stdin().read(&mut buffer).unwrap() > 0 { println!("{:?}", buffer); } This code waits for the user to press return to print the contents of buffer. The desired behaviour would be for it to print as the user typed. In the documentation for Stdin (the struct returned by the stdin() call in the code above), there is no reference to how one could change this default behaviour.