GithubHelp home page GithubHelp logo

legneato / asciicast-rs Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 2.0 22 KB

Rust library for the Asciicast file format used by Asciinema

License: Apache License 2.0

Rust 100.00%
rust rust-library asciicast asciinema tty

asciicast-rs's Introduction

Build Status

A Rust library for working with the Asciicast file format. Asciicast is used by Asciinema to play back terminal recordings.

Installation

asciicast is available on crates.io and can be included in your Cargo enabled project like this:

[dependencies]
asciicast = "0.2.2"

Then include it in your code like this:

extern crate asciicast;

Usage

This library exports version 2 of the asciicast format by default. Version 1 will eventually be available as a subcrate.

Api documentation.

Example (v2)

extern crate asciicast;

let entry = asciicast::Entry {
    time: 1.234,
    event_type: asciicast::EventType::Output,
    event_data: String::new("text data"),
};

println!("{:?}", entry);

License

asciicast is licensed under either of the following, at your option:

asciicast-rs's People

Contributors

bluthej avatar legneato avatar mathiaspius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

drahnr bluthej

asciicast-rs's Issues

What is the status of this crate?

Hi,

I was wondering what the status of this crate is? It looks like there hasn't been a commit since August of 2021 so I'm wondering if it's still maintained.

I'm starting a project to port svg-term to Rust and I'm looking at asciicast-rs as a library to depend on!

Cheers

Add the concept of an Asciicast session

Add a higher-level concept of an Asciicast session. This would keep track of timing and such. API might look something like:

let mut session = asciicast::Session::new(asciicast::v2);
session.set_height(42);
session.set_width(42);
session.add_event(asciicast::EventType::Input, String::new("this is an event");
session.add_event(asciicast::EventType::Output, String::new("whatever");
let completed = session.end();

It might be cool to have the session provide a stream as well.

Document optional features

Currently chrono is optional but on by default. We should document how to turn it off and what it changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.