'Programming'에 해당되는 글 1733건

  1. 2023.05.16 golang uds
  2. 2023.05.16 golang mutex (sync)
  3. 2023.05.11 go 포맷터
  4. 2023.05.11 c에서 rust 호출하기
  5. 2023.05.11 rust 실행파일
  6. 2023.05.11 rust if문
  7. 2023.05.10 rust rustup doc
  8. 2023.05.09 rust cargo new를 통한 프로젝트 생성
  9. 2023.05.09 rust 와 main.rs
  10. 2023.05.09 rust 문서 다운로드하기(cargo)
Programming/golang2023. 5. 16. 10:46

쓸만하려나?

server client
package main

import (
"fmt"
"log"
"os"
"path/filepath"
"time"

"github.com/google/uuid"
"github.com/johnsiilver/golib/ipc/uds"
)

func main() {
socketAddr := filepath.Join(os.TempDir(), uuid.New().String())

cred, _, err := uds.Current()
if err != nil {
panic(err)
}

// This will set the socket file to have a uid and gid of whatever the
// current user is. 0770 will be set for the file permissions (though on some
// systems the sticky bit gets set, resulting in 1770.
serv, err := uds.NewServer(socketAddr, cred.UID.Int(), cred.GID.Int(), 0770)
if err != nil {
panic(err)
}

fmt.Println("Listening on socket: ", socketAddr)

// This listens for a client connecting and returns the connection object.
for conn := range serv.Conn() {
conn := conn

// We spinoff handling of this connection to its own goroutine and
// go back to listening for another connection.
go func() {
// We are checking the client's user ID to make sure its the same
// user ID or we reject it. Cred objects give you the user's
// uid/gid/pid for filtering.
if conn.Cred.UID.Int() != cred.UID.Int() {
log.Printf("unauthorized user uid %d attempted a connection", conn.Cred.UID.Int())
conn.Close()
return
}
// Write to the stream every 10 seconds until the connection closes.
for {
if _, err := conn.Write([]byte(fmt.Sprintf("%s\n", time.Now().UTC()))); err != nil {
conn.Close()
}
time.Sleep(10 * time.Second)
}
}()
}
}
package main

import (
"flag"
"fmt"
"io"
"os"

"github.com/johnsiilver/golib/ipc/uds"
)

var (
addr = flag.String("addr", "", "The path to the unix socket to dial")
)

func main() {
flag.Parse()

if *addr == "" {
fmt.Println("did not pass --addr")
os.Exit(1)
}

cred, _, err := uds.Current()
if err != nil {
panic(err)
}

// Connects to the server at socketAddr that must have the file uid/gid of
// our current user and one of the os.FileMode specified.
client, err := uds.NewClient(*addr, cred.UID.Int(), cred.GID.Int(), []os.FileMode{0770, 1770})
if err != nil {
fmt.Println(err)
os.Exit(1)
}

// client implements io.ReadWriteCloser and this will print to the screen
// whatever the server sends until the connection is closed.
io.Copy(os.Stdout, client)
}

[링크 : https://github.com/johnsiilver/golib/blob/v1.1.2/ipc/uds/example/server/server.go]

[링크 : https://github.com/johnsiilver/golib/blob/v1.1.2/ipc/uds/example/client/client.go]

[링크 : https://pkg.go.dev/github.com/johnsiilver/golib/ipc/uds]

'Programming > golang' 카테고리의 다른 글

golang 고루틴과 채널  (0) 2023.05.16
golang switch, select  (0) 2023.05.16
golang mutex (sync)  (0) 2023.05.16
go 포맷터  (0) 2023.05.11
golang echo directory listing  (0) 2023.05.08
Posted by 구차니
Programming/golang2023. 5. 16. 10:36

 

package main

import (
"fmt"
"sync"
"time"
)

// SafeCounter is safe to use concurrently.
type SafeCounter struct {
mu sync.Mutex
v  map[string]int
}

// Inc increments the counter for the given key.
func (c *SafeCounter) Inc(key string) {
c.mu.Lock()
// Lock so only one goroutine at a time can access the map c.v.
c.v[key]++
c.mu.Unlock()
}

// Value returns the current value of the counter for the given key.
func (c *SafeCounter) Value(key string) int {
c.mu.Lock()
// Lock so only one goroutine at a time can access the map c.v.
defer c.mu.Unlock()
return c.v[key]
}

func main() {
c := SafeCounter{v: make(map[string]int)}
for i := 0; i < 1000; i++ {
go c.Inc("somekey")
}

time.Sleep(time.Second)
fmt.Println(c.Value("somekey"))
}

[링크 : https://go.dev/tour/concurrency/9]

 

func (*Mutex) Lock ¶
func (m *Mutex) Lock()
Lock locks m. If the lock is already in use, the calling goroutine blocks until the mutex is available.

func (*Mutex) TryLock ¶
added in go1.18
func (m *Mutex) TryLock() bool
TryLock tries to lock m and reports whether it succeeded.

Note that while correct uses of TryLock do exist, they are rare, and use of TryLock is often a sign of a deeper problem in a particular use of mutexes.

func (*Mutex) Unlock ¶
func (m *Mutex) Unlock()
Unlock unlocks m. It is a run-time error if m is not locked on entry to Unlock.

A locked Mutex is not associated with a particular goroutine. It is allowed for one goroutine to lock a Mutex and then arrange for another goroutine to unlock it.

[링크 : https://pkg.go.dev/sync#Mutex.Lock]

 

[링크 : https://mingrammer.com/gobyexample/mutexes/]

[링크 : https://www.joinc.co.kr/w/GoLang/example/mutexex]

[링크 : https://pyrasis.com/book/GoForTheReallyImpatient/Unit35]

 

'Programming > golang' 카테고리의 다른 글

golang switch, select  (0) 2023.05.16
golang uds  (0) 2023.05.16
go 포맷터  (0) 2023.05.11
golang echo directory listing  (0) 2023.05.08
golang websocket binary  (0) 2023.03.28
Posted by 구차니
Programming/golang2023. 5. 11. 11:56

go 에는 자체적으로 포맷터가 들어있다.

획일화 되서 나쁘다고 해야하나.. 좋다고 해야하나.. 참 미묘~

 

To format your code, you can use the gofmt tool directly:

gofmt -w yourcode.go
Or you can use the “go fmt” command:

go fmt path/to/your/package

[링크 : https://go.dev/blog/gofmt]

'Programming > golang' 카테고리의 다른 글

golang uds  (0) 2023.05.16
golang mutex (sync)  (0) 2023.05.16
golang echo directory listing  (0) 2023.05.08
golang websocket binary  (0) 2023.03.28
golang 크로스 컴파일 GOARM GOARCH  (0) 2023.02.03
Posted by 구차니
Programming/rust2023. 5. 11. 10:16

no_mangle을 설정하면 c에서 사용가능한 함수로 빌드 되는 듯.

Every function in your Rust-ffi API needs to have a corresponding header function.

#[no_mangle]
pub extern "C" fn rust_function() {}

would then become
void rust_function();

[링크 : https://docs.rust-embedded.org/book/interoperability/rust-with-c.html]

[링크 : https://dev.to/dandyvica/how-to-call-rust-functions-from-c-on-linux-h37]

 

mangle.. mangle이면 cpp이랑 좀 더 용이하게 붙을 느낌인데..?

$ readelf -a main | grep demangle
   387: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   393: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   394: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   395: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   400: 000000000002fc20   320 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v010H
   401: 000000000002fd60   152 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v06Pa
   402: 000000000002fe00   181 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v06Pa
   403: 000000000002fec0   202 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v06Pa
   404: 000000000002ff90    85 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v06Pa
   405: 000000000002fff0   471 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v06Pa
   406: 00000000000301d0    79 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   407: 0000000000030220   411 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   408: 00000000000303c0   411 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   409: 0000000000032a00  1868 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   410: 0000000000030560   396 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   411: 0000000000031c00  1282 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   412: 00000000000306f0   354 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   413: 0000000000030860   241 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   414: 0000000000030960   748 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   415: 0000000000032800   509 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   416: 0000000000030c50   514 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   417: 0000000000032110  1138 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   418: 0000000000030e60   152 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   419: 0000000000030f00   159 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   420: 0000000000030fa0   666 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   421: 0000000000031240   147 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   422: 0000000000031af0   260 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   423: 00000000000312e0   164 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   424: 0000000000032590   610 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   425: 0000000000033150   487 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   426: 0000000000033340   720 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   427: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   429: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   430: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS rustc_demangle.9c38528e-c
   492: 000000000002f460   635 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v08de
   624: 0000000000033620   802 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle6legac
   654: 0000000000031390  1878 FUNC    LOCAL  DEFAULT   14 _ZN14rustc_demangle2v07Pr
   758: 000000000002ea40   395 FUNC    GLOBAL DEFAULT   14 _ZN63_$LT$rustc_demangle.
   848: 000000000002e330  1695 FUNC    GLOBAL DEFAULT   14 _ZN14rustc_demangle8deman
   956: 0000000000033950  2970 FUNC    GLOBAL DEFAULT   14 _ZN71_$LT$rustc_demangle.
  1021: 000000000002f6e0  1332 FUNC    GLOBAL DEFAULT   14 _ZN64_$LT$rustc_demangle.
  1090: 000000000002ea30     9 FUNC    GLOBAL DEFAULT   14 _ZN14rustc_demangle8Deman
  1278: 000000000002e9d0    82 FUNC    GLOBAL DEFAULT   14 _ZN14rustc_demangle12try_
  1303: 000000000002ebd0    21 FUNC    GLOBAL DEFAULT   14 _ZN71_$LT$rustc_demangle.

'Programming > rust' 카테고리의 다른 글

rust 소유권  (0) 2023.05.25
rust was  (0) 2023.05.20
rust 실행파일  (0) 2023.05.11
rust if문  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
Posted by 구차니
Programming/rust2023. 5. 11. 10:10

dynamic link 이고

$ file *
main:    ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=989d3d9b6419e9e16be59fe589ddda8c631c30f0, with debug_info, not stripped
main.rs: C source, ASCII text

 

링크 된걸 보면 c 프로그램과 별 차이가 없긴 한데

$ ldd main
linux-vdso.so.1 (0x00007ffe605de000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efd04cd8000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007efd04ad0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efd048b1000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007efd046ad000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efd042bc000)
/lib64/ld-linux-x86-64.so.2 (0x00007efd05142000)

 

실행 파일 크기가 미친듯이 크다.

golang 처럼 rust 라이브러리 자체는 static으로 link 한건가?

$ ls -alh
합계 12M
drwxrwxr-x  2 user user 4.0K  5월 11 10:06 .
drwxrwxr-x 24 user user 4.0K  5월 11 10:05 ..
-rwxrwxr-x  1 user user  12M  5월 11 10:06 main
-rw-rw-r--  1 user user  148  5월 11 10:06 main.rs

'Programming > rust' 카테고리의 다른 글

rust was  (0) 2023.05.20
c에서 rust 호출하기  (0) 2023.05.11
rust if문  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
rust cargo new를 통한 프로젝트 생성  (0) 2023.05.09
Posted by 구차니
Programming/rust2023. 5. 11. 10:07

golang과 비슷한데

그럼에도 불구하고 최소한 condition 부분의 괄호를 경로를 띄우지 error는 아니고

중괄호 위치는 마음대로 설정할 수 있다.

 

$ cat main.rs 
fn main() 
{
let number = 3;

if (number < 5)
{
println!("condition was true");
}
else
{
println!("condition was false");
}
}

 

$ rustc main.rs 
warning: unnecessary parentheses around `if` condition
 --> main.rs:5:6
  |
5 |         if (number < 5)
  |            ^          ^
  |
  = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
  |
5 -         if (number < 5)
5 +         if number < 5
  |

warning: 1 warning emitted

 

[링크 : https://doc.rust-lang.org/book/ch03-05-control-flow.html]

'Programming > rust' 카테고리의 다른 글

c에서 rust 호출하기  (0) 2023.05.11
rust 실행파일  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
rust cargo new를 통한 프로젝트 생성  (0) 2023.05.09
rust 와 main.rs  (0) 2023.05.09
Posted by 구차니
Programming/rust2023. 5. 10. 22:49

도움말 문서 보여줌

Welcome to an overview of the documentation provided by the Rust project. This page contains links to various helpful references, most of which are available offline (if opened with rustup doc).

 

'Programming > rust' 카테고리의 다른 글

rust 실행파일  (0) 2023.05.11
rust if문  (0) 2023.05.11
rust cargo new를 통한 프로젝트 생성  (0) 2023.05.09
rust 와 main.rs  (0) 2023.05.09
rust 문서 다운로드하기(cargo)  (0) 2023.05.09
Posted by 구차니
Programming/rust2023. 5. 9. 13:32

msvc 설치하고 하니 정상적으로 잘 빌드 된다.

C:\Users\user\Desktop\study\rust\hello_cargo>cargo build
   Compiling hello_cargo v0.1.0 (C:\Users\free\Desktop\study\rust\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.04s

---

에라이.. 역시 윈도우는 취미/개발용이 아니라 엔터테인먼트 용이었나!? (뜬금없이 분노중)

C:\Users\user\Desktop\study\rust>cargo new hello_cargo
     Created binary (application) `hello_cargo` package

C:\Users\user\Desktop\study\rust\hello_cargo> cd hello_cargo

C:\Users\user\Desktop\study\rust\hello_cargo>cargo build
   Compiling hello_cargo v0.1.0 (C:\Users\free\Desktop\study\rust\hello_cargo)
error: linker `link.exe` not found
  |
  = note: program not found

note: the msvc targets depend on the msvc linker but `link.exe` was not found

note: please ensure that Visual Studio 2017 or later, or Build Tools for Visual Studio were installed with the Visual C++ option.

note: VS Code is a different product, and is not sufficient.

error: could not compile `hello_cargo` due to previous error

[링크 : https://doc.rust-lang.org/book/ch01-03-hello-cargo.html]

 

cargo.toml 내용은 평범한(?) ini 스타일이네

[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

 

.gitignore 파일은 /target 인걸 봐서는 /src 에는 소스 /target에는 바이너리가 생성되는 구조인듯

/target

'Programming > rust' 카테고리의 다른 글

rust if문  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
rust 와 main.rs  (0) 2023.05.09
rust 문서 다운로드하기(cargo)  (0) 2023.05.09
rust in windows  (0) 2023.05.09
Posted by 구차니
Programming/rust2023. 5. 9. 13:21

러스트니까 확장자가 rs인가..

함수는 fn 키워드로 구분하는 듯.

C:\Users\user\Desktop\study\rust>type main.rs
fn main() {
    println!("Hello, world!");
}

 

처음해보려는데 머가 잘 못 깔린걸까.. -_-

C:\Users\user\Desktop\study\rust>rustc main.rs
error: linker `link.exe` not found
  |
  = note: program not found

note: the msvc targets depend on the msvc linker but `link.exe` was not found

note: please ensure that Visual Studio 2017 or later, or Build Tools for Visual Studio were installed with the Visual C++ option.

note: VS Code is a different product, and is not sufficient.

error: aborting due to previous error

 

먼가 열심히 object 파일은 생성하는데 linker가 없어서 실행파일을 만드는건 실패한 듯.

C:\Users\user\Desktop\study\rust>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 38F7-6D98

 C:\Users\user\Desktop\study\rust 디렉터리

2023-05-09  오후 01:18    <DIR>          .
2023-05-09  오후 01:18    <DIR>          ..
2023-05-09  오후 01:18             1,224 main.398lq81sg45tyvtc.rcgu.o
2023-05-09  오후 01:18               508 main.main.b8591b61-cgu.0.rcgu.o
2023-05-09  오후 01:18             1,870 main.main.b8591b61-cgu.1.rcgu.o
2023-05-09  오후 01:18             1,651 main.main.b8591b61-cgu.2.rcgu.o
2023-05-09  오후 01:18               802 main.main.b8591b61-cgu.3.rcgu.o
2023-05-09  오후 01:18             2,396 main.main.b8591b61-cgu.4.rcgu.o
2023-05-09  오후 01:18             1,708 main.main.b8591b61-cgu.5.rcgu.o
2023-05-09  오후 01:18                46 main.rs
               8개 파일              10,205 바이트
               2개 디렉터리  127,890,599,936 바이트 남음

 

 

+

msvc 설치하고 나서 rustc 해서 빌드하니 아래와 같이 익숙한(!) pdb와 exe가 나온다.

C:\Users\user\Desktop\study\rust>rustc main.rs

C:\Users\user\Desktop\study\rust>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: 38F7-6D98

 C:\Users\user\Desktop\study\rust 디렉터리

2023-05-09  오후 11:37    <DIR>          .
2023-05-09  오후 11:37    <DIR>          ..
2023-05-09  오후 01:29    <DIR>          hello_cargo
2023-05-09  오후 11:37           163,840 main.exe
2023-05-09  오후 11:37         1,355,776 main.pdb
2023-05-09  오후 01:18                46 main.rs
2023-05-09  오후 01:34        16,904,109 The Rust Programming Language.pdf
               4개 파일          18,423,771 바이트
               3개 디렉터리  121,282,232,320 바이트 남음

'Programming > rust' 카테고리의 다른 글

rust if문  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
rust cargo new를 통한 프로젝트 생성  (0) 2023.05.09
rust 문서 다운로드하기(cargo)  (0) 2023.05.09
rust in windows  (0) 2023.05.09
Posted by 구차니
Programming/rust2023. 5. 9. 13:17

설치할때 msvc가 안깔려서 그런가 무슨 link 없다고 배짼다.

인터넷이 되는 천국에 가면 다시 해봐야겠네

 

The HTML format is available online at https://doc.rust-lang.org/stable/book/ and offline with installations of Rust made with rustup; run rustup docs --book to open.

[링크 : https://doc.rust-lang.org/book/]

 

Requirements
Building the book requires mdBook, ideally the same version that rust-lang/rust uses in this file. To get it:
$ cargo install mdbook --version <version_num>

Building
To build the book, type:
$ mdbook build

[링크 : https://github.com/rust-lang/book]

 

+

msvc 깔고 재시도

C:\Users\user\Desktop\study\rust\hello_cargo\target\debug>cargo install mdbook
    Updating crates.io index
  Installing mdbook v0.4.28
   Compiling proc-macro2 v1.0.56
   Compiling quote v1.0.27
   Compiling unicode-ident v1.0.8
   Compiling cfg-if v1.0.0
   Compiling autocfg v1.1.0
   Compiling windows_x86_64_msvc v0.48.0
   Compiling windows_x86_64_msvc v0.42.2
   Compiling windows-targets v0.48.0
   Compiling version_check v0.9.4
   Compiling windows-sys v0.48.0
   Compiling winapi v0.3.9
   Compiling syn v2.0.15
   Compiling log v0.4.17
   Compiling windows-targets v0.42.2
   Compiling windows-sys v0.45.0
   Compiling itoa v1.0.6
   Compiling serde_derive v1.0.162
   Compiling thiserror v1.0.40
   Compiling once_cell v1.17.1
   Compiling serde v1.0.162
   Compiling bytes v1.4.0
   Compiling getrandom v0.2.9
   Compiling typenum v1.16.0
   Compiling rand_core v0.6.4
   Compiling generic-array v0.14.7
   Compiling ppv-lite86 v0.2.17
   Compiling pin-project-lite v0.2.9
   Compiling futures-core v0.3.28
   Compiling rand_chacha v0.3.1
   Compiling unicase v2.6.0
   Compiling fnv v1.0.7
   Compiling thiserror-impl v1.0.40
   Compiling siphasher v0.3.10
   Compiling syn v1.0.109
   Compiling phf_shared v0.10.0
   Compiling rand v0.8.5
   Compiling http v0.2.9
   Compiling tokio v1.28.0
   Compiling tinyvec_macros v0.1.1
   Compiling io-lifetimes v1.0.10
   Compiling bitflags v1.3.2
   Compiling tinyvec v1.6.0
   Compiling phf_generator v0.10.0
   Compiling tokio-macros v2.1.0
   Compiling socket2 v0.4.9
   Compiling mio v0.8.6
   Compiling lock_api v0.4.9
   Compiling slab v0.4.8
   Compiling futures-sink v0.3.28
   Compiling memchr v2.5.0
   Compiling parking_lot_core v0.9.7
   Compiling percent-encoding v2.2.0
   Compiling num_cpus v1.15.0
   Compiling utf-8 v0.7.6
   Compiling futures-task v0.3.28
   Compiling form_urlencoded v1.1.0
   Compiling unicode-normalization v0.1.22
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling winapi-util v0.1.5
   Compiling scopeguard v1.1.0
   Compiling new_debug_unreachable v1.0.4
   Compiling httparse v1.8.0
   Compiling futures-util v0.3.28
   Compiling smallvec v1.10.0
   Compiling unicode-bidi v0.3.13
   Compiling idna v0.3.0
   Compiling digest v0.10.6
   Compiling is-terminal v0.4.7
   Compiling phf_codegen v0.10.0
   Compiling string_cache_codegen v0.5.2
   Compiling futures-macro v0.3.28
   Compiling tracing-core v0.1.30
   Compiling indexmap v1.9.3
   Compiling crossbeam-utils v0.8.15
   Compiling cpufeatures v0.2.7
   Compiling mac v0.1.1
   Compiling pin-utils v0.1.0
   Compiling anstyle v1.0.0
   Compiling ucd-trie v0.1.5
   Compiling ryu v1.0.13
   Compiling serde_json v1.0.96
   Compiling utf8parse v0.2.1
   Compiling anstyle-parse v0.2.0
   Compiling pest v2.6.0
   Compiling anstyle-wincon v1.0.1
   Compiling futf v0.1.5
   Compiling sha1 v0.10.5
   Compiling tracing v0.1.37
   Compiling markup5ever v0.11.0
   Compiling parking_lot v0.12.1
   Compiling url v2.3.1
   Compiling anstyle-query v1.0.0
   Compiling num-traits v0.2.15
   Compiling base64 v0.13.1
   Compiling futures-channel v0.3.28
   Compiling hashbrown v0.12.3
   Compiling colorchoice v1.0.0
   Compiling libc v0.2.144
   Compiling precomputed-hash v0.1.1
   Compiling string_cache v0.8.7
   Compiling anstream v0.3.2
   Compiling pest_meta v2.6.0
   Compiling mime_guess v2.0.4
   Compiling tokio-util v0.7.8
   Compiling tendril v0.4.3
   Compiling aho-corasick v1.0.1
   Compiling phf v0.10.1
   Compiling html5ever v0.26.0
   Compiling same-file v1.0.6
   Compiling terminal_size v0.2.6
   Compiling num-integer v0.1.45
   Compiling clap_lex v0.4.1
   Compiling regex-syntax v0.7.1
   Compiling mime v0.3.17
   Compiling strsim v0.10.0
   Compiling httpdate v1.0.2
   Compiling try-lock v0.2.4
   Compiling byteorder v1.4.3
   Compiling want v0.3.0
   Compiling tungstenite v0.18.0
   Compiling regex v1.8.1
   Compiling clap_builder v4.2.7
   Compiling walkdir v2.3.3
   Compiling crossbeam-channel v0.5.8
   Compiling h2 v0.3.18
   Compiling pest_generator v2.6.0
   Compiling pin-project-internal v1.0.12
   Compiling headers-core v0.2.0
   Compiling http-body v0.4.5
   Compiling filetime v0.2.21
   Compiling windows-sys v0.42.0
   Compiling anyhow v1.0.71
   Compiling tower-service v0.3.2
   Compiling base64 v0.21.0
   Compiling pulldown-cmark v0.9.2
   Compiling notify v5.1.0
   Compiling rustls-pemfile v1.0.2
   Compiling hyper v0.14.26
   Compiling headers v0.3.8
   Compiling pin-project v1.0.12
   Compiling pest_derive v2.6.0
   Compiling clap v4.2.7
   Compiling tokio-tungstenite v0.18.0
   Compiling serde_urlencoded v0.7.1
   Compiling tokio-stream v0.1.14
   Compiling termcolor v1.2.0
   Compiling fastrand v1.9.0
   Compiling maplit v1.0.2
   Compiling humantime v2.1.0
   Compiling scoped-tls v1.0.1
   Compiling glob v0.3.1
   Compiling warp v0.3.5
   Compiling env_logger v0.10.0
   Compiling gitignore v1.0.8
   Compiling tempfile v3.5.0
   Compiling ammonia v3.3.0
   Compiling clap_complete v4.2.1
   Compiling handlebars v4.3.6
   Compiling chrono v0.4.24
   Compiling notify-debouncer-mini v0.2.1
   Compiling elasticlunr-rs v3.0.2
   Compiling toml v0.5.11
   Compiling opener v0.5.2
   Compiling shlex v1.1.0
   Compiling topological-sort v0.2.2
   Compiling mdbook v0.4.28
    Finished release [optimized] target(s) in 5m 26s
  Installing C:\Users\user\.cargo\bin\mdbook.exe
   Installed package `mdbook v0.4.28` (executable `mdbook.exe`)

'Programming > rust' 카테고리의 다른 글

rust if문  (0) 2023.05.11
rust rustup doc  (0) 2023.05.10
rust cargo new를 통한 프로젝트 생성  (0) 2023.05.09
rust 와 main.rs  (0) 2023.05.09
rust in windows  (0) 2023.05.09
Posted by 구차니