Skip to content

Releases: vampirc/vampirc-uci

v0.11.1

27 Mar 21:23
Compare
Choose a tag to compare
v0.11.1 Pre-release
Pre-release

New in 0.11.1

  • Improved parse_with_unknown(&str) so that it correctly recognizes as much of input as possible. For example, whereas
    earlier the input uci\ndebug on\nucinewgame\nabc\nstop\nquit would be returned as a single Uci::Unknown message, the
    improved grammar support will return six separate messages, five of which will be proper UCI messages, while wrapping
    'abc' into Uci::Unknown.
  • A fix for incorrect serialization to string of the btime parameter, thanks to @analog_hors.
  • Support for the chess crate v. 3.2.0.

v0.11.0

17 Sep 12:25
5efe433
Compare
Choose a tag to compare
v0.11.0 Pre-release
Pre-release

New in 0.11.0

  • Support for negative times, such as negative time left and time increment, as discussed in
    vampirc-uci doesn't recognize negative times #16.
    To support negative durations, the representation of millisecond-based time quantities has been switched
    from Rust standard library's std::time::Duration to the chrono crate's
    chrono::Duration (doc). This is an API-breaking change, hence the version increase.
  • Fix for vampric-uci-19, a sometimes incorrect parsing of the go message.

v0.10.1

16 May 16:21
Compare
Choose a tag to compare
v0.10.1 Pre-release
Pre-release

New in 0.10.1

  • Added the parse_one(&str) method that parses and returns a single command, to be used in a loop
    that reads from stdin or other BufReader. See example above.
  • Changed the internal representation of time parameters from u64 into std::time::Duration (breaking
    change).
  • Relaxed grammar rules now allow that the last command sent to parse() or friends doesn't need to
    have a newline terminator. This allows for parsing of, among others, a single command read in a loop from
    stdin::io::stdin().lock().lines(), which strips the newline characters from the end -
    see vampirc-uci-14.
  • Marked the UciMessage::direction(&self) method as public.

v0.9.0

12 Apr 11:29
5031386
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

New in 0.9

  • (Optional) integration with chess crate (see below).
  • Removed the explicit Safe and Sync implementations.

This library (optionally) integrates with the chess crate. First, include the
vampirc-uci crate into your project with the chess feature:

    [dependencies.vampirc_uci]
    version = "0.9"
    features = ["chess"]

This will cause the vampirc_uci's internal representation of moves, squares and pieces to be replaced with chess
crate's representation of those concepts. Full table below:

vampirc_uci 's representation chess' representation
vampirc_uci::UciSquare chess::Square
vampirc_uci::UciPiece chess::Piece
vampirc_uci::UciMove chess::ChessMove

WARNING

chess is a fairly heavy create with some heavy dependencies, so probably only use the integration feature if you're
building your own chess engine or tooling with it.

v0.8.3

21 Dec 12:48
Compare
Choose a tag to compare
v0.8.3 Pre-release
Pre-release

New in 0.8.3

v0.8.2

15 Sep 22:44
Compare
Choose a tag to compare
v0.8.2 Pre-release
Pre-release

New in 0.8.2

  • Added ByteVecUciMessage as a UciMessage wrapper that keeps the serialized form of the message in the struct as a byte Vector. Useful if
    you need to serialize the same message multiple types or support AsRef<[u8]> trait for funnelling the messages into a futures::Sink or
    something.
  • Modifications for integration with async async-std based vampirc-io.

v0.8.1

29 Apr 18:00
762cbe3
Compare
Choose a tag to compare
v0.8.1 Pre-release
Pre-release

New in 0.8.1

  • Added parse_with_unknown() method that instead of ignoring unknown messages (like parse) or throwing an error (like parse_strict) returns them as a UciMessage::Unknown variant.

v0.8.0

29 Mar 23:02
9d50d01
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

New in 0.8.0

  • Support for parsing of the info message, with the UciAttributeInfo enum representing all 17 types of messages described by the UCI documentation, as well as any other info message via the Any variant.

vampirc-uci 0.7.0

02 Mar 12:01
6f4e594
Compare
Choose a tag to compare
vampirc-uci 0.7.0 Pre-release
Pre-release

Features support for parsing all GUI-bound messages, except for info and option.

vampirc-uci 0.5.0

25 Feb 15:28
Compare
Choose a tag to compare
vampirc-uci 0.5.0 Pre-release
Pre-release

The initial release with support for parsing and serializing engine-bound UCI messages.

To use the library, declare a dependency on the  rust crate.