| Crates.io | legalis-jp |
| lib.rs | legalis-jp |
| version | 0.1.3 |
| created_at | 2026-01-05 08:26:17.484165+00 |
| updated_at | 2026-01-21 04:11:35.39514+00 |
| description | Japanese jurisdiction support for Legalis-RS |
| homepage | https://github.com/cool-japan/legalis |
| repository | https://github.com/cool-japan/legalis |
| max_upload_size | |
| id | 2023414 |
| size | 1,725,026 |
日本法サポートライブラリ for Legalis-RS
Version 0.2.0 - 5 Major Law Domains with e-Gov Electronic Filing Support
legalis-jpは、Legalis-RSフレームワークにおける日本の法体系サポートを提供するクレートです。日本特有の法制度、和暦、e-Gov電子申請システム、主要法令の実装を含みます。
5つの主要法域とe-Gov電子申請サポートを追加実装:
398個のテスト、27,600行以上のコード!
型安全なビルダーパターンAPIで主要法域を実装:
176個のテスト、10個の動作例、13,400行以上のコード!
日本の元号システムに対応した日付処理機能を提供します。
use legalis_jp::{Era, JapaneseDate};
let date = JapaneseDate::new(Era::Reiwa, 5, 1, 1)?;
assert_eq!(date.to_gregorian()?, (2023, 1, 1));
e-Gov法令検索のXML形式に対応したパーサーを提供します。
use legalis_jp::EGovLawParser;
let parser = EGovLawParser::new();
let law = parser.parse_xml(xml_content)?;
日本国憲法の条文を構造化されたデータとして提供します。
use legalis_jp::Constitution;
let constitution = Constitution::new();
let article_9 = constitution.get_article(9)?;
民法の主要条文を実装しています。不法行為法(Articles 709, 710, 715)と契約法(Article 415)をカバー。
use legalis_jp::tort::{Article709, Article710, Article715};
// Article 709: 基本的な不法行為
let tort = Article709::new()
.perpetrator("加害者")
.victim("被害者")
.intent_or_negligence(true)
.rights_violation(true)
.causal_link_direct()
.damage(500_000, "治療費")
.build()?;
// Article 710: 慰謝料請求
let damages = Article710::new()
.with_article_709(tort)
.damage_type(NonPecuniaryDamageType::BodyAndHealth)
.harm_severity(HarmSeverity::Moderate)
.build()?;
// Article 715: 使用者責任
let employer_liability = Article715::new()
.employee_tort(employee_tort)
.employer("会社名")
.employee("従業員名")
.employment_type(EmploymentType::FullTime)
.during_business_execution(true)
.build()?;
use legalis_jp::contract::{Article415, ObligationType, BreachType, AttributionType};
let breach = Article415::new()
.with_obligation(ObligationType::Monetary {
amount: 1_000_000,
currency: "JPY".into()
})
.with_breach(BreachType::NonPerformance)
.with_attribution(Attribution::new(
AttributionType::Negligence,
"正当な理由なく履行拒否"
))
.creditor("会社A")
.debtor("供給業者B")
.build()?;
株式会社と合同会社の設立、運営、株主総会の要件を完全実装。
use legalis_jp::commercial_law::{ArticlesOfIncorporation, CompanyType, Capital};
// 株式会社の定款作成
let articles = ArticlesOfIncorporation::new()
.company_name("テクノロジーソリューションズ株式会社")
.company_type(CompanyType::StockCompany)
.capital(Capital::new(10_000_000))
.authorized_shares(10_000)
.business_purpose("ソフトウェア開発及び販売")
.build()?;
// 株主総会の定足数チェック
use legalis_jp::commercial_law::ShareholdersMeeting;
let meeting = ShareholdersMeeting::new()
.total_voting_rights(1_500)
.present_voting_rights(1_000)
.agenda_item("決算承認")
.build()?;
assert!(meeting.has_quorum()); // 定足数を満たしているか判定
労働基準法に基づく労働時間管理、残業代計算、解雇予告の要件を実装。
use legalis_jp::labor_law::{EmploymentContract, EmploymentType, WorkingTimeRecord};
// 雇用契約の作成と検証
let contract = EmploymentContract::builder()
.employee_name("山田太郎")
.employer_name("株式会社ABC")
.employment_type(EmploymentType::IndefiniteTerm)
.base_wage(350_000)
.daily_working_hours(8.0)
.build()?;
// 残業代の自動計算
let record = WorkingTimeRecord::new()
.date("2024-01-15")
.working_hours(10.0) // 実働10時間
.rest_period_minutes(60)
.build()?;
let overtime_pay = record.calculate_overtime_premium(contract.base_wage())?;
特許法、著作権法、商標法、意匠法の出願・登録要件を完全カバー。
use legalis_jp::intellectual_property::{PatentApplication, CopyrightedWork, TrademarkApplication};
// 特許出願の要件検証
let patent = PatentApplication::new()
.title("エネルギー効率改善装置")
.application_number("2020-123456")
.inventor("山田太郎")
.claim("特定の構造により消費電力を50%削減")
.build()?;
// 著作権保護期間の判定
let work = CopyrightedWork::new()
.title("春の物語")
.author("作家名")
.publication_date("2020-04-01")
.work_type(WorkType::Literary)
.build()?;
let protection_expires = work.protection_expiration_date()?; // 著作権満了日を自動計算
消費者契約法と特定商取引法に基づく不当条項の検出とクーリングオフ。
use legalis_jp::consumer_protection::{ConsumerContract, CoolingOffExercise};
// 消費者契約の検証
let contract = ConsumerContract::new()
.contract_title("オンライン通販サービス")
.clause("当社は一切責任を負いません") // 全部免責条項(無効)
.build()?;
let validation = contract.validate()?;
assert!(validation.has_unfair_terms()); // 不当条項を検出
// クーリングオフ期間の判定
let cooling_off = CoolingOffExercise::new()
.transaction_type(TransactionType::DoorToDoorSales)
.contract_date("2024-01-10")
.build()?;
assert!(cooling_off.is_within_period("2024-01-15")); // 8日以内
裁判例の検索、引用、重要判例の管理機能。
use legalis_jp::case_law::{CaseLawDatabase, InMemoryCaseDatabase, CourtLevel, CitationFormatter};
// 判例データベースの構築
let mut database = InMemoryCaseDatabase::new();
database.add_decision(CourtDecision::new()
.case_number("令和2年(受)第1234号")
.court_level(CourtLevel::SupremeCourt)
.date("2022-06-15")
.summary("不法行為における因果関係の立証基準")
.is_leading_precedent(true)
.build()?);
// 判例の検索
let results = database.search_by_keyword("因果関係")?;
// 標準形式での引用
let formatter = CitationFormatter::new();
let citation = formatter.format_citation(&results[0]);
// "最高裁令和2年(受)第1234号判決(令和4年6月15日)"
契約書の自動リスク検出、法令遵守チェック、改善提案の生成。
use legalis_jp::risk_analysis::{quick_analyze, ContractType, RiskSeverity};
// 契約書の包括的リスク分析
let report = quick_analyze(
"オンライン通販サービス利用規約",
ContractType::Consumer,
"第5条 当社は一切責任を負いません。
第10条 解約時には全額を違約金として支払うものとします。"
)?;
// リスク評価結果
println!("Overall Risk Score: {}/100", report.overall_risk_score);
println!("Critical Risks: {}", report.critical_count());
// 検出された問題の詳細
for finding in &report.findings {
if finding.severity == RiskSeverity::Critical {
println!("❌ {}", finding.issue_description);
println!(" Legal Reference: {}", finding.legal_reference.as_ref().unwrap());
println!(" Recommendation: {}", finding.recommendation);
}
}
テンプレートエンジンを使用して、動的な契約書を自動生成。
use legalis_jp::contract_templates::*;
// テンプレートエンジンの作成
let mut engine = TemplateEngine::new();
// 雇用契約テンプレートの定義
let template = ContractTemplate::new(
"employment_contract",
"雇用契約書",
TemplateType::Employment,
r#"
{{employer_name}}(甲)と{{employee_name}}(乙)は、以下のとおり雇用契約を締結する。
第1条(雇用)
甲は乙を{{position}}として雇用する。
第2条(賃金)
基本給: 月額{{base_salary}}円
{{#if has_probation}}
第3条(試用期間)
雇用開始日から{{probation_months}}ヶ月間を試用期間とする。
{{/if}}
"#,
);
engine.register_template(template);
// 変数の設定
let mut context = TemplateContext::new();
context.set_string("employer_name", "株式会社ABC");
context.set_string("employee_name", "山田太郎");
context.set_string("position", "ソフトウェアエンジニア");
context.set_integer("base_salary", 400_000);
context.set_boolean("has_probation", true);
context.set_integer("probation_months", 3);
// 契約書の生成
let contract = engine.render("employment_contract", &context)?;
println!("{}", contract.content_ja);
// 標準条項ライブラリの使用
let library = ClauseLibrary::new();
let confidentiality = library.get_clause("confidentiality_obligation").unwrap();
println!("{}", confidentiality.title_ja); // "第13条(秘密保持義務)"
各条文の詳細な解説ガイド:
各ガイドには以下を含みます:
労働契約と36協定の実務ガイド:
CONTRACT_VALIDATION_GUIDE.md - 雇用契約検証システム完全ガイド (~900行)
ARTICLE_36_AGREEMENT_GUIDE.md - 36協定(時間外労働協定)完全ガイド (~850行)
判例検索と引用のための完全ガイド:
CASE_LAW_DATABASE_GUIDE.md - 判例データベース完全ガイド (~800行)
CASE_LAW_QUICK_REFERENCE.md - 判例データベースクイックリファレンス (~400行)
10個の実働サンプルで各法域の使い方を学べます:
# 商法・会社法
cargo run --example company-formation-kaisha # 株式会社の設立
cargo run --example shareholders-meeting-validation # 株主総会の要件検証
# 労働法
cargo run --example employment-contract-validator # 雇用契約の検証
cargo run --example overtime-calculator # 残業代の自動計算
# 知的財産法
cargo run --example patent-application-validator # 特許出願の要件チェック
cargo run --example copyright-trademark-validator # 著作権・商標の保護期間判定
# 消費者保護法
cargo run --example consumer-contract-risk-analyzer # 消費者契約の不当条項検出
# 判例データベース
cargo run --example case-law-search-demo # 判例検索と引用
# リスク分析システム
cargo run --example contract-risk-analyzer # 契約書の包括的リスク分析
# 契約テンプレート
cargo run --example contract-template-generator # 契約書の自動生成(雇用・NDA・業務委託)
各サンプルは完全に動作し、実務に即した3-4つのシナリオを含みます。
# 全テストを実行(176個のテストすべてがパス)
cargo nextest run --all-features
# 警告ゼロポリシー準拠
cargo clippy --all-targets --all-features
# ドキュメントテスト
cargo test --doc
# ドキュメント生成
cargo doc --no-deps --open
品質指標:
日本法は**大陸法系(Civil Law)**に属し、以下の特徴を持ちます:
| 特徴 | 大陸法(日本) | 英米法(米国) |
|---|---|---|
| 主要法源 | 法典・制定法 | 判例・先例 |
| 裁判所の役割 | 法の適用 | 法の創造 |
| 推論方法 | 演繹的(法典→事案) | 類推的(判例→判例) |
| 拘束力 | 制定法の文言 | 先例(stare decisis) |
legalis-core - コア型とトレイトlegalis-i18n - 国際化サポートchrono - 日時処理quick-xml - XMLパーサーMIT OR Apache-2.0