| Crates.io | legalis-za |
| lib.rs | legalis-za |
| version | 0.1.3 |
| created_at | 2026-01-21 05:02:47.091976+00 |
| updated_at | 2026-01-21 05:02:47.091976+00 |
| description | South Africa jurisdiction support for Legalis-RS - Constitution, Companies Act, POPIA, Labour Relations |
| homepage | https://github.com/cool-japan/legalis |
| repository | https://github.com/cool-japan/legalis |
| max_upload_size | |
| id | 2058358 |
| size | 89,055 |
South Africa / Suid-Afrika - Legal System Support for Legalis-RS
Version 0.1.3 - Constitution, Companies Act, POPIA, Labour Relations
legalis-za provides comprehensive support for the South African legal system within the Legalis-RS framework. South Africa has a mixed legal system combining Roman-Dutch civil law, English common law, and indigenous customary law, all subject to the supreme Constitution.
The South African legal system is characterized by:
| Feature | South Africa | UK | Netherlands | USA |
|---|---|---|---|---|
| Legal Family | Mixed (Civil/Common) | Common Law | Civil Law | Common Law |
| Main Source | Constitution & Statutes | Case Law | Codes | Case Law |
| Constitution | 1996 | Uncodified | 1814 | 1787 |
| Court System | Constitutional Court → SCA → High Courts | Supreme Court | Hoge Raad | Federal & State |
| Bill of Rights | Chapter 2 (Justiciable) | HRA 1998 | ECHR incorporated | Amendments 1-10 |
Constitution of the Republic of South Africa, 1996
use legalis_za::constitution::{FundamentalRight, LimitationAnalysis};
let claim = ConstitutionalClaim::new()
.right(FundamentalRight::Equality) // Section 9
.applicant("Affected Person")
.respondent("State Department")
.build()?;
// Section 36 limitation analysis
let limitation = LimitationAnalysis::new()
.nature_of_right(RightNature::Core)
.importance_of_purpose(true)
.nature_and_extent_of_limitation(LimitationExtent::Significant)
.relation_between_limitation_and_purpose(true)
.less_restrictive_means_available(false)
.build()?;
assert!(limitation.is_justified());
Companies Act 71 of 2008
use legalis_za::companies::{Company, CompanyType, validate_incorporation};
let company = Company::new()
.name("Tech Solutions (Pty) Ltd")
.company_type(CompanyType::PrivateCompany) // (Pty) Ltd
.directors(vec!["Director 1"]) // Minimum 1 for Pty Ltd
.registered_office("Johannesburg, Gauteng")
.build()?;
assert!(validate_incorporation(&company).is_ok());
Protection of Personal Information Act 4 of 2013
use legalis_za::data_protection::{DataProcessing, LawfulBasis, validate_processing};
let processing = DataProcessing::new()
.responsible_party("Data Company (Pty) Ltd")
.purpose("Customer service")
.lawful_basis(LawfulBasis::Consent)
.data_categories(vec!["name", "ID number", "address"])
.information_officer_registered(true)
.build()?;
assert!(validate_processing(&processing).is_ok());
Labour Relations Act 66 of 1995
Basic Conditions of Employment Act 75 of 1997
Employment Equity Act 55 of 1998
use legalis_za::labor::{Employment, DismissalAnalysis};
let employment = Employment::new()
.employee_name("John Mokoena")
.employer("Manufacturing Co (Pty) Ltd")
.monthly_salary(25_000) // ZAR
.tenure_years(5)
.build()?;
// Analyse dismissal fairness (LRA)
let dismissal = DismissalAnalysis::new()
.reason(DismissalReason::Misconduct)
.fair_procedure_followed(true)
.substantively_fair(true)
.build()?;
assert!(dismissal.is_fair());
Broad-Based Black Economic Empowerment Act 53 of 2003
Version 0.1.3 Statistics:
chrono - Date/time handlingserde - Serializationthiserror - Error handlingMIT OR Apache-2.0