Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

roosterjs

> 编程语言
Open source

roosterjs is a framework-independent javascript rich text editor.

1.3K stars0 likes0 views
WebsiteGitHub

About

roosterjs is a framework-independent javascript rich text editor.

Rooster

Rooster is a framework-independent JavaScript rich-text editor neatly nested inside one HTML `

    B I
    U

2. Navigate to editor.htm, you will see a editor shown in the page which includes buttons with bold, italic, underline
   actions.

## Sample code

To view the demo site, please click [here](https://microsoft.github.io/roosterjs/index.html).

To build the demo site code yourself, follow these instructions:

1. Get dependencies using [yarn](https://yarnpkg.com) or [npm](https://www.npmjs.com/):

    ```cmd
    yarn
    ```

2. Build the source code, and start the sample editor:

    ```
    yarn start
    ```

    or

    ```
    npm start
    

…

bash

    yarn test
    ```
3. Run all tests from command line in Safari on macOS

    ```
    safaridriver --enable
    yarn test:safari
    ```

    Safari's **Allow Remote Automation** setting must be enabled before running the command.

## Dependencies

As a NodeJs package, RoosterJs has dependencies for runtime (specified in package.json under each sub
packages in "dependencies" section) and dependencies for build time (specified in package.json under
root path in "devDependencies" section).

For runtime dependencies, there are two parts:

-   Internal dependencies (a RoosterJs package depends on other RoosterJs packages)
-   External dependencies (RoosterJs depends on other NPM packages)

Currently we have very few external dependencies. Before adding any new dependency, we need to check:

1. What's the value of the new dependency and the code using the dependency bring into roosterjs?
   If we add a new dependency and create our new API to just call into the dependency, that new API
   doesn't actually bring too much value, and people who uses roosterjs in their project can do this
   themselves in their code, and we should not add such dependency to people who don't really need it.

2. What's the dependency tree of the dependency?
   If we introduce a new dependency which has a deep dependency tree, we need to be careful since it
   means we are actually adding a lot of new dependencies and our code size may be increased a lot.

3. How much functionalities do we need from the dependency?
   If the dependency provides a lot of functionalities but we actually only need a small piece of them,
   we may need to consider other solutions, such as find another smaller one, or do it ourselves.

4. What's the license of the dependency?
   A dependency package under MIT license is good to be used for RoosterJs. For other licenses, we need
   to review and see if we can take it as a dependency.

If you still feel a new dependency is required after checking these questions, we can review it and
finally decide whether we should add the new dependency.

For build time dependencies, it is more flexible to add new dependencies since it won't increase runtime
code size or dependencies.

## More documentation

We are still working on more documentation in [roosterjs wiki](https://github.com/Microsoft/roosterjs/wiki) and [API reference](https://microsoft.github.io/roosterjs/docs/index.html).

## License - MIT

License
Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the [MIT](LICENSE) License.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

TypeScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言