Skip to content
DocumentationBuild a Rust One Web application
On this page

Page resources

Open Markdownllms.txtView source

Last updated

The Order Review source contains a standalone Rust product with its own canonical project entry point. Its public facade and renderer have direct owning tests; the canonical lifecycle acceptance requires a complete final immutable distribution and exact authority inputs. Source availability and direct Rust tests do not establish installed-release acceptance.

1. Select the Rust application

Its one.one selects three authored sources and one exact lock:

One
one 1

semantic order.review
    domain one.project@1
    use one.dependency.cargo@1 as cargo
    project OrderReviewWeb@1
        assurance one.authority.policy#Accountable@1
        source ./one/contracts.one
        source ./one/application.one
        source ./one/system.one
        dependencies
            cargo.itoa = =1.0.18
                role runtime
        lock ./one.lock

The application and root use the ordinary manifestless Rust web path:

One
one 1

semantic order.review.build
    domain one.build@1
    application Web@1
        profile one.rust#ServerHtmlApplication@1
        workspace ../../../..
        source ./src/lib.rs
        source ./src/main.rs
        source ./src/style.css
        entry process ./src/main.rs
        dependency runtime cargo(name: "one", exact: 0.1.0, source: workspace)

The selected one/system.one declares the independent root:

One
one 1

semantic order.review.system
    domain one.system@1
    component Web@1
        owner order.review#Product@1
        provide service order.review#Review@1
        require one.deployment.local.release#Apply@1
        require one.history.durable#Append@1

    system OrderReview@1
        root order_review_web
            include Web
            source Web from order.review.build#Web@1
            build development
            build release
            build reproducible

2. Write only the product

src/lib.rs implements one::web::server::Application. It owns:

  • the initial review snapshot;
  • positive customer and order identifier checks;
  • the 4,096-byte order-details rule;
  • success and rejection copy; and
  • the view! page presentation over the public fluent document builder.

The reusable facade owns all generic server work. The product has no handwritten listener, request parser, route matcher, response framing, percent decoder, or HTML encoder. It also has no Cargo.toml, Cargo.lock, or package.json: Build projects the exact Cargo package and lock as disposable inputs beneath .one/build/work from the authored source and dependency selection above.

The operation implementation is Rust too. Its checked .one implementation item selects one.language.rust#OwnedAsync@1, re-exports the Rust request and service symbols, and one::service::pure adapts the product rule without a handwritten async service wrapper. .one keeps the semantic declaration and Rust implementation claim separate; the selected, built Rust artifact executes the request.

src/main.rs only selects an address and calls serve(OrderReview, address). The stylesheet is a static Build input and the resulting page works with scripts disabled.

3. Verify the Rust boundary

Console
cargo test -p one --features server-html --lib web::tests --locked
cargo test -p one-adapter-renderer-server-html --locked
one test --workspace systems/system/idl/examples/order/review/web \
  --root order_review_web --offline

The facade and renderer crates own their direct Rust checks. The product test requires the root's exact distribution, local execution bindings, and Build authority. It uses the same manifestless source selection and canonical root as every later lifecycle step.

4. Run it

Build and apply the release through the lifecycle below, then open its reported local address. Set ORDER_REVIEW_WEB_ADDRESS in the owned execution configuration to choose another machine-local binding.

5. Use the canonical lifecycle

Console
one check --workspace systems/system/idl/examples/order/review/web --offline
one test --workspace systems/system/idl/examples/order/review/web \
  --root order_review_web --offline
one invoke order.review#Review.Check@1 request.json \
  --workspace systems/system/idl/examples/order/review/web \
  --root order_review_web --offline
one plan --workspace systems/system/idl/examples/order/review/web \
  --root order_review_web --offline
one build --workspace systems/system/idl/examples/order/review/web \
  --root order_review_web --offline

Use {"customer_id":"7","order_id":"42"} as request.json. Continue with the exact Build through one release local, then use its plan:sha256:... reference for one apply, a second idempotent one apply, and one inspect. Those commands use the same selected source and lock as the product; Cargo checks execute inside Build's disposable projection, not through a second product manifest.

See One Web for the API boundary and authority and trust for effect authorization.