<h1 align="center">
<br>
<a href="https://wiki.iota.org/streams/welcome"><img src="streams.png"></a>
</h1>
<h2 align="center">A cryptographic framework for building secure messaging protocols</h2>
<p align="center">
<a href="https://wiki.iota.org/streams/welcome" style="text-decoration:none;">
<img src="https://img.shields.io/badge/Documentation%20portal-blue.svg?style=for-the-badge"
alt="Developer documentation portal">
</p>
<p align="center">
<a href="https://discord.iota.org/" style="text-decoration:none;"><img src="https://img.shields.io/badge/Discord-9cf.svg?logo=discord" alt="Discord"></a>
<a href="https://iota.stackexchange.com/" style="text-decoration:none;"><img src="https://img.shields.io/badge/StackExchange-9cf.svg?logo=stackexchange" alt="StackExchange"></a>
<a href="https://raw.githubusercontent.com/iotaledger/streams/master/LICENSE" style="text-decoration:none;"><img src="https://img.shields.io/badge/license-Apache%202.0-green.svg" alt="Apache 2.0 license"></a>
</p>
<p align="center">
<a href="#about">About</a> ◈
<a href="#prerequisites">Prerequisites</a> ◈
<a href="#installation">Installation</a> ◈
<a href="#getting-started">Getting started</a> ◈
<a href="#api-reference">API reference</a> ◈
<a href="#examples">Examples</a> ◈
<a href="#supporting-the-project">Supporting the project</a> ◈
<a href="#joining-the-discussion">Joining the discussion</a>
</p>
---
## About
IOTA Streams is a **work-in-progress** framework for building cryptographic messaging protocols. Streams ships with a built-in protocol called Channels for sending authenticated messages between two or more parties on the Tangle.
As a framework, Streams allows developers to build protocols for their specific needs.
This process will be documented as the development progresses. However, since this crate is in an alpha stage of development it is still likely to change.
At the moment, IOTA Streams includes the following crates:
* [Channels Application](iota-streams-app-channels/README.md) featuring Channels Application.
* [Core layers](iota-streams-core/README.md) featuring spongos automaton for sponge-based authenticated encryption, pre-shared keys, pseudo-random generator;
* [Keccak for core layers](iota-streams-core-keccak/README.md) featuring Keccak-F[1600] as spongos transform;
* [Curve25519 asymmetric crypto](iota-streams-core-edsig/README.md) featuring Ed25519 signature and X25519 key exchange;
* [DDML](iota-streams-ddml/README.md) featuring data definition and manipulation language for protocol messages;
* [Application layer](iota-streams-app/README.md) common Application definitions.
* [Bindings](bindings/c/README.md).
## Prerequisites
To use IOTA Streams, you need the following:
- [Rust](https://www.rust-lang.org/tools/install)
- (Optional) An IDE that supports Rust autocompletion. We recommend [Visual Studio Code](https://code.visualstudio.com/Download) with the [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer) extension
We also recommend updating Rust to the [latest stable version](https://github.com/rust-lang/rustup.rs#keeping-rust-up-to-date):
```bash
rustup update stable
```
## Installation
To use the library in your crate you need to add it as a dependency in the `Cargo.toml` file.
Because the library is not on [crates.io](https://crates.io/), you need to use the Git repository either remotely or locally.
`no_std` is currently supported. However cargo nightly must be used to build with `no_std` feature.
## Getting started
If you don't have a rust project setup yet you can create one by running,
cargo new my-library
**Remote**
Add the following to your `Cargo.toml` file:
```bash
[dependencies]
anyhow = { version = "1.0", default-features = false }
iota-streams = { git = "https://github.com/iotaledger/streams", branch = "develop"}
```
**Local**
1. Clone this repository
```bash
git clone https://github.com/iotaledger/streams
```
2. Add the following to your `Cargo.toml` file:
```bash
[dependencies]
iota-streams = { version = "0.1.2", path = "../streams" }
```
## Getting started
After you've [installed the library](#installation), you can use it in your own Cargo project.
For example, you may want to use the Channels protocol to create a new author and subscriber like so:
```
use iota_streams::app_channels::api::tangle::{Author, Subscriber};
use iota_streams::app::transport::tangle::PAYLOAD_BYTES;
use iota_streams::app::transport::tangle::client::Client;
fn main() {
let node = "http://localhost:14265";
let client = Client::new_from_url(node);
let encoding = "utf-8";
let multi_branching_flag = true;
let mut author = Author::new("AUTHORSSEED", encoding, PAYLOAD_BYTES, multi_branching_flag, client);
let mut subscriber = Subscriber::new("MYSUBSCRIBERSECRETSTRING", encoding, PAYLOAD_BYTES, client);
}
```
For a more detailed guide, go to our [documentation portal](https://wiki.iota.org/streams/welcome).
## API reference
To generate the API reference and display it in a web browser, do the following:
```bash
cargo doc --open
```
## Examples
We have an example in the [`examples` directory](examples/src/main.rs), which you can use as a reference when developing your own protocols with IOTA Streams.
A `no_std` version can be found in [`iota-streams-app-channels-example` directory](iota-streams-app-channels-example/src/main.rs)
## Supporting the project
Please see our [contribution guidelines](CONTRIBUTING.md) for all the ways in which you can contribute.
### Running tests
We use code comments to write tests. You can run all tests by doing the following from the `streams` directory:
```
cargo test --all
```
### Updating documentation
If you want to improve the code comments, please do so according to the guidelines in [RFC 1574](https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md#appendix-a-full-conventions-text).
## Joining the discussion
If you want to get involved in discussions about this technology, or you're looking for support, go to the #streams-discussion channel on [Discord](https://discord.iota.org/).
没有合适的资源?快使用搜索试试~ 我知道了~
IOTAStreams,一个称为应用程序的加密协议框架。取代屏蔽身份验证消息(MAM)。阿尔法版本。.zip
共189个文件
rs:115个
md:28个
css:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 115 浏览量
2023-03-28
13:56:52
上传
评论
收藏 4.86MB ZIP 举报
温馨提示
IOTAStreams,一个称为应用程序的加密协议框架。取代屏蔽身份验证消息(MAM)。阿尔法版本。
资源推荐
资源详情
资源评论
收起资源包目录
IOTAStreams,一个称为应用程序的加密协议框架。取代屏蔽身份验证消息(MAM)。阿尔法版本。.zip (189个子文件)
custom.css 15KB
chrome.css 9KB
variables.css 7KB
general.css 4KB
highlight.css 1KB
print.css 757B
header.css 172B
example.env 57B
EXTERNAL_DOCS_CONFIG 252B
EXTERNAL_DOCS_DROPDOWN_CONFIG 111B
.gitignore 245B
.gitignore 105B
index.hbs 14KB
header.hbs 13KB
favicon.ico 15KB
highlight.js 84KB
book.js 23KB
docusaurus.config.js 3KB
sidebars.js 2KB
package-lock.json 78KB
package.json 471B
config.json 175B
LICENSE 11KB
api_reference.md 51KB
api_reference.md 39KB
CONTRIBUTING.md 7KB
overview.md 7KB
README.md 6KB
examples.md 6KB
getting_started.md 6KB
CODE_OF_CONDUCT.md 6KB
examples.md 4KB
getting_started.md 2KB
SECURITY.md 2KB
contribute.md 2KB
welcome.md 2KB
README.md 1KB
README.md 1KB
pull_request_template.md 1KB
getting_started.md 1KB
README.md 1KB
getting_started.md 820B
overview.md 738B
troubleshooting.md 689B
bug_report.md 619B
SUPPORT.md 602B
examples.md 518B
feature_request.md 487B
api_reference.md 443B
specs.md 419B
README.md 209B
.nojekyll 0B
Streams_Specification_1_0A.pdf 1.12MB
streams.png 311KB
Logo_Swirl_Dark.png 50KB
libraries.png 46KB
screenshot_faucet.png 32KB
favicon.png 6KB
user.rs 69KB
basic.rs 22KB
messages.rs 17KB
identifier.rs 12KB
address.rs 12KB
message.rs 12KB
keyload.rs 11KB
identity.rs 11KB
spongos.rs 10KB
test.rs 10KB
utangle.rs 9KB
hdf.rs 9KB
message_builder.rs 8KB
did.rs 8KB
permission.rs 8KB
cursor_store.rs 8KB
pcf.rs 7KB
did.rs 7KB
main.rs 7KB
user_builder.rs 6KB
url_info.rs 6KB
lean.rs 6KB
mask.rs 6KB
absorb.rs 5KB
subscription.rs 5KB
tangle.rs 5KB
io.rs 5KB
signed_packet.rs 5KB
mask.rs 5KB
mod.rs 5KB
absorb.rs 4KB
mod.rs 4KB
error.rs 4KB
tagged_packet.rs 4KB
topic.rs 4KB
uint.rs 4KB
tests.rs 4KB
branch_announcement.rs 4KB
mask.rs 4KB
psk.rs 4KB
preparsed.rs 4KB
bytes.rs 4KB
共 189 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9153
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功