NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #550 most downloaded on crates.io
A crossplatform terminal library for manipulating terminals.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 3 weeks to 12 months
Most releases are documented
notes for 46 of the last 60 stable releases
6 versions withdrawn
withdrawn after publishing
9 years old
70 releases · first in 2018
Nothing published for this version
Fix broken build on linux when using use-dev-tty with
use-dev-tty with (#906)Nothing published for this version
One column per quarter.
Add option to force overwrite NO_COLOR
NO_COLOR support (https://no-color.org/)NO_COLOR (#802)window_size function to fetch pixel width/height of screen for more sophisticated rendering in terminals.events (to make crossterm more lightweight) (#776)@Gronis, @kevin-vigor, @Wilfred, @benjajaja, @blt-r, @Piturnah, @kdheepak, @DeathVenom54, @senekor, @joseluis, @gibbz00, @lesleyrs, @jhartzell42
Add synchronized output/update control
use-dev-tty feature flag (#762)Add SetCursorStyle to set the cursor appearance and visibility.
SetCursorStyle to set the cursor appearance and visibility. (#742)use-dev-tty). (#735)SetCursorShape in vavour of SetCursorStyle. (#742)terminal::size (#714)@pianohacker , @AhoyISki , @Cl00e9ment , @yyogo , @the-mikedavis , @djarb , @Piturnah , @MitMaro , @Yusuto , @generic-user1 , @baldoalessandro , @CenTdemeern1 , @Blatko1 , @aaarkid @basilkohler , @TimonPost
SetCursorStyle to set the cursor apearance and visibility. (#742)use-dev-tty). (#735)SetCursorShape in favour of SetCursorStyle. (#742)terminal::size (#714)BREAKING: Copy trait is removed from Event, you can keep it by removing the "bracked-paste" feature flag. However this flag might be standardized in t
BREAKING: Copy trait is removed from Event, you can keep it by removing the "bracked-paste" feature flag. However this flag might be standardized in the future.
We removed the Copy from Event because the new Paste event, which contains a pasted string into the terminal, which is a non-copy string.
Event::Paste and EnableBracketedPaste ).PushKeyboardEnhancementFlags. This protocol allows for:
SetStyle command to allow setting various styling in one command.Event::FocusGained and Event::FocusLost)Consistency and better documentation on mouse cursor operations (BREAKING CHANGE).
Update signal-hook and mio to version 0.8.
Fix control key parsing problem.
Nothing published for this version
Update yanked version crossterm-winapi and move to crossterm-winapi 0.9.0.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix panic when only setting bold and redirecting stdout.
tty_fd for set/get terminal attributesFix enabling ANSI support when stdout is redirected
Fix windows 8 or lower write to user-given stdout instead of stdout.
std::io::Writesupports_ansi publicNothing published for this version
Fix cursor position retrieval bug linux.
Add functionality to retrieve color based on passed ansi code.
&'a strImproved support of keymodifier for linux, arrow keys, function keys, home keys etc.
SetTitle command to change the terminal title.Add macros for Colorize and Styler impls, add an impl for String
Colorize and Styler impls, add an impl for StringFix get terminal size mac os, this did not report the correct size.
- Windows unicode support
Reverted bug in 0.17.0: "Make terminal size function fallback to STDOUT_FILENO if /dev/tty is missing.".
STDOUT_FILENO if /dev/tty is missing.".Nothing published for this version
Change attribute vector in ContentStyle to bitmask.
ContentStyle to bitmask.SetAttributes command.Attributes type, which is a bitfield of enabled attributes.exit(), was useless.Fix CTRL + J key combination. This used to return an ENTER event.
Command for &T: Command. This allows commands to be queued by reference, as well as by value.Clone trait bounds from StyledContent.StyledContent::style_mut.execute! and queue!.execute! and queue!.ContentStyle::apply to take self by value instead of reference, to prevent an unnecessary extra clone.Debug, Clone, Copy, etc) to all of the command structsResetColor uses &'static str instead of String- Fix TIOCGWINSZ for FreeBSD
Made windows cursor position relative to the window instead absolute to the screen buffer windows.
queue macro were it consumed a type and required an type to be Copy.Nothing published for this version
Remove thread from AsyncReader on Windows.
New input::stop_reading_thread() function
input::stop_reading_thread() function
Async Reader fix, join background thread and avoid looping forever on windows.
Major API-change, removed old-api
Major API-change, removed old-api
Crossterm typeTerminalCursor, TerminalColor, Terminalcursor(), color() , terminal()module::types (cursor::MoveTo)input module
EnableMouseCapture and EnableMouseCapture commandscursor module
crossterm::cursor::position in place of TerminalCursor::posGoto to MoveToUp to MoveLeftRight to MoveRightDown to MoveDownBlinkOn to EnableBlinkingBlinkOff to DisableBlinkingResetPos to ResetPositionSavePos to SavePositionterminal
crossterm::terminal::size in place of Terminal::sizecrossterm::terminal::exit in place of Terminal::exitstyle module
ObjectStyle to ContentStyle. Now full names are used for methodsStyledObject to StyledContent and made members privatePrintStyledFont to PrintStyledContentattr method to attribute.Attribute::NoInverse to NoReverseColored private, user should use commands insteadSetFg -> SetForegroundColorSetBg -> SetBackgroundColorSetAttr -> SetAttributeContentStyle::fg_color -> ContentStyle::foreground_colorContentStyle::bg_color -> ContentStyle::background_colorContentStyle::attrs -> ContentStyle::attributesMove all the crossterm_ crates code was moved to the crossterm crate
crossterm_ crates code was moved to the crossterm crate
crossterm_cursor is in the cursor module, etc.Following crates are deprecated and no longer maintained
crossterm_cursorcrossterm_inputcrossterm_screencrossterm_stylecrossterm_terminalcrossterm_utilscrossterm_cursor 0.4.0RAW_MODE_ENABLED with is_raw_mode_enabled (PR #9)SyncReader & InputEvent::CursorPosition for pos_raw() (PR #10)crossterm_input 0.5.0SyncReader::next() Windows and UNIX behavior (PR #5)(0, 0)AsyncReaderAsyncReaderSIGTTIN when executed under the LLDB0crossterm_screen 0.3.2to_alternate switch back to main screen if it fails to switch into raw mode (PR #4)EnterAlternateScreenLeaveAlternateScreencrossterm_style 0.5.2lib.rsSetBg command, WinApi logicStyledObject, used stdout for resetting terminal colorResetColor commandcrossterm_terminal 0.3.2crossterm_cursor::sys dependency (PR #2)crossterm_utils 0.4.0sys::unix::RAW_MODE_ENABLED replaced with sys::unix::is_raw_mode_enabled() (breaking)lazy_static dependencycrossterm_winapi 0.3.0All sub-crates were moved to their own repositories in the crossterm-rs organization
crossterm-rs organizationAs a preparation for crossterm 0.1.0 we have moved crossterm to an organisation called 'crossterm-rs'.
As a preparation for crossterm 0.1.0 we have moved crossterm to an organisation called 'crossterm-rs'.
Debug for ObjectStyle debug-derive, Serialize/Deserialize for key events serdecrossterm::Result from all api's: return_crossterm_result
TerminalCursor::pos() returns Result<(u16, u16)>Terminal::size() returns Result<(u16, u16)>TerminalCursor::move_* returns crossterm::ResultExecutableCommand::queue returns crossterm::ResultQueueableCommand::queue returns crossterm::Resultget_available_color_count returns no resultRawScreen::into_raw_mode returns crossterm::Result instead of io::ResultRawScreen::disable_raw_mode returns crossterm::Result instead of io::ResultAlternateScreen::to_alternate returns crossterm::Result instead of io::ResultTerminalInput::read_line returns crossterm::Result instead of io::ResultTerminalInput::read_char returns crossterm::Result instead of io::ResultAsyncReader::stop_reading() to stop()RawScreen::disable_raw_mode_on_drop to keep_raw_mode_on_dropTerminalCursor::reset_position() to restore_position()Command::get_anis_code() to ansi_code()available_color_count to available_color_count()Terminal::terminal_size to Terminal::sizeConsole::get_handle to Console::handlei16 values for indexing: set size, set cursor pos, scrolling synced to u16 valuesNothing published for this version
Nothing published for this version
Implement command API, to have better performance and more control over how and when commands are executed. PR, issue
CTRL + Left, Down, Up, Right key support
Prefetch buffer size for more efficient windows input reads. PR
Reset foreground and background color individually. PR
Removed println from SyncReader
SyncReaderThis release is all about moving to a stabilized API for 1.0.
from_screen, from_outputArc<TerminalOutput> from all internal Api's.TerminalOutputScreenNoItalic attributeNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Introduced KeyEvents - Introduced MouseEvents - Upgraded crossterm_winapi 0.2
Introduced easier ways to style text issue 87.
AttributesColorType since it was unnecessary.Introduced feature flags; input, cursor, style, terminal, screen.
Error module is made public PR 78.
WinApi rewrite and correctly error handled PR 67
Nothing published for this version
Nothing published for this version
Fixed broken API documentation PR 53.
Your coding agent can read these notes before it upgrades. Set up the MCP server →