Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RepoSync
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
cateiru
July 09, 2021
Education
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RepoSync
https://github.com/yuto51942/netpro-project
cateiru
July 09, 2021
More Decks by cateiru
See All by cateiru
社内の開発便利ツールを作った話 / サブカル業界Developers 勉強会Vol.6
cateiru
0
590
QUICについて調べた
cateiru
0
140
Other Decks in Education
See All in Education
セキュリティ担当がいない中小医療機関を院外のRISSはどう支えるべきか / How External RISS Can Help Small Medical Institutions
eller86
1
210
Antigravityを使ってGeminiAPI(NanobananaPro)と連携して挿絵メーカーを作った
yoshimura_datam
0
250
実践プレゼンテーション・デザイン
dragon2
1
360
NDIAS Automotive / IoT CTF 2026 Recap - Keyfob & OSINT
himitu23
0
350
DecisionesEjecutivasCrisis
mariooc
0
420
生成AIとの付き合い方/ How to work with AI
kaityo256
PRO
3
700
Merger Process
bvr7352
0
150
AIの力を100%引き出すために
frievea
0
580
「答えを出す」より「わかる」をつくる
kzkmaeda
1
310
Sekolah Sabat - Triwulan 4 2026 - Pelajaran 1
hiola
0
12k
An Experiment in "Cross-Cultural Exchange" as a Method for Content Creation
naoji_taniguchi_ksk_0827
0
220
観察、仮説、実行、検証、計画、提案を一年で3000回トレーニングする方法/3000 Thinking Loops in 365 Days
moriyuya
5
1.4k
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
Code Reviewing Like a Champion
maltzj
528
40k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
730
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Talk to Developers About Accessibility
jct
2
560
Claude Code のすすめ
schroneko
67
230k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Raft: Consensus for Rubyists
vanstee
142
7.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
GitHub's CSS Performance
jonrohan
1033
470k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Transcript
Repo Sync
どういうもの? • 複数クライアントとファイルをリアルタイム同期するやつ • Gitの仕組みを利用することで変更を戻すことができる • ソケット通信を使用することでプライベートネットワーク間で通信 • 使いやすいCLI •
Python & Rust製 ↓ HackMDやGoogle DocのCLI、ソケット通信ver.
使用言語 • 更新確認、履歴管理 ◦ Rust • 通信、cli ◦ Python
動作説明1 依存関係のインストールとビルド • ./build.shでRustのビルド(cargoが必要) • pipenv installでPythonの依存関係インストール(pipenvが必要)
動作説明2 サーバーの起動 • pipenv shellでPythonの仮想環境へ • repo-server --port=8080 -a localhost
でも可
動作説明3 クライアントの起動 • repo-syncで、ファイルパス、ポート、サーバーのアドレスを入力
動作説明4 変更履歴の表示 • repo-git showで履歴表示 • --pager false とすることでpager無しになる
動作説明5 Revert • repo-git applyで履歴のハッシュ値と適用するファイルパスを指定
動作例(うまく動かなかったとき用)
アピールポイント • コア部分(ファイル更新確認、履歴保存)をRustで書く →パフォーマンス向上 • Gitの仕組みを参考に更新履歴を保存する →間違えて保存したときなどに任意の場所に戻せる
シーケンス図 サーバー側
シーケンス図 クライアント側
開発形態、使用ツール • GitHub ◦ CI/CD: GitHub actions ◦ GitHub flow
• Rust ◦ cargo ◦ PyO3 • Python ◦ tox ◦ pipenv ◦ flake8 ◦ mypy ◦ pylint
将来展望 • 同時に保存すると、コンフリクトが起きる→キューに格納 • PythonとRustを使用しておりPythonを使う意味がほぼないためすべてRustで再実 装 • 履歴表示時にPagerを使用しているが、画面にすべて表示されない出力の場合に qを押したときにエラーが起きる問題の修正 •
pypiにデプロイしたい
yuto51942/netpro-project https://github.com/yuto51942/netpro-project